作者ken218 (ken218)
看板Database
标题Re: [SQL ] Group by 完只有某些值相加的方法
时间Wed Dec 18 17:35:03 2019
这个也可以用 pivot 解, 不过窍门一样, 要先把帐号改掉
select * from (
select FuncName, IIF(UserName = 'guest', 'guest', 'member') typ
from tb1
) S
pivot (
count(typ) for
typ in (guest, member)
) pvt
※ 引述《cutekid (可爱小孩子)》之铭言:
: https://imgur.com/a/6TEnMEw
: -- 测资
: ;with tb1 as (
: select *
: from (
: values
: ('A','Jordan'),('A','guest'),('A','guest'),
: ('B','Jordan'),('B','Kobe'), ('B','James'),('B','guest')
: )t(FuncName,UserName)
: )
: -- 结果
: select FuncName,
: 非会员 = count(case when UserName = 'guest'then 1 end),
: 会员 = count(case when UserName != 'guest'then 1 end)
: from tb1
: group by FuncName
: ※ 引述《paul09253336 (paulma)》之铭言:
: : (针对 SQL 语言的问题,用这个标题。请用 Ctrl+Y 砍掉这行)
: : 资料库名称:MYSQL
: : 资料库版本:2014
: : 内容/问题描述:
: : 大家好,我现在有一张表会记录不同function被呼叫的次数、呼叫的时间、function名称
: : ,同时有个栏位(UserName)会记录他是不是会员,如果不是会记成“guest”,是的话
: : 则会记录他的帐号
: : ,现在想要去计算出每个月不同function的使用次数,并列出非会员及会员的使用次数
: : 我现在用
: : group by “function name”,“date”後,在某个group中UserName会有“guest”跟不
: : 同的帐号的情况
: : 想请问各位高手,我要怎麽去把guest跟不同帐号分开去做加总,同时select出来
: : 结果的栏位大概长这样
: : funcName,Count-非会员,Count-会员,
: : 我试过在group条件加上UserName,但这样会让会员跟非会员的结果分开成两列,这不是我
: : 想要的结果,现在需要的是在同一列上同时有非会员,会员,的结果
: : 请各位高手能指点方向,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 3.8.111.149 (英国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1576661705.A.A3F.html
1F:→ ken218: wait, MySQL doesn't have Pivot. Sorry :( 12/18 17:39