如何通过查询修复MySQL组?

时间:2011-12-09 19:24:51

标签: mysql

我有一张看起来像这样的表

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的单个实例,它会中断。

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