我有一张看起来像这样的表
id,member_name,member_group,flag
member_group是一个文本值,例如'admin','moderator','user' flag的值为0,1或2.
我正在试图弄清楚如何从这个表中产生以下结果 我们假设有4个管理员,4个管理员中有一个0,两个1和一个2.
group, total, 0's, 1's, 2's
admin, 4, 1, 2, 1
尽我所能我不能产生这个结果。我相信分组让我很困惑。
我当前的查询
Select
mem_group.group_name As `group`,
Count(mem_group.gender)
From
mem_group
Group By
mem_group.group_name
这只能正确计算总数,如果我试图计算0的1和2的单个实例,它会中断。
答案 0 :(得分:1)
Select
mem_group.group_name As `group`,
Count(mem_group.gender),
SUM( CASE When flag = 0 Then 1 else 0 end ) as zeros,
SUM( CASE When flag = 1 Then 1 else 0 end ) as ones,
SUM( CASE When flag = 2 Then 1 else 0 end ) as twos
From
mem_group
Group By
mem_group.group_name
尝试这样的事情。
答案 1 :(得分:0)
select group_name, flag, count(id)
from table
group by group_name, flag
将产生
admin 0 cnt1
admin 1 cnt2
admin 2 cnt3