作者cutekid (可爱小孩子)
看板Database
标题Re: [SQL ] Group by 完只有某些值相加的方法
时间Tue Dec 17 20:06:52 2019
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), 来自: 111.252.147.55 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1576584414.A.A10.html
※ 编辑: cutekid (111.252.147.55 台湾), 12/17/2019 20:08:49
1F:推 paul09253336: 太感谢了,我原本是想问问看方向,没想到连语法都写 12/17 20:12
2F:→ paul09253336: 好了,谢谢 12/17 20:12