2017-03-24 24 views
0
SELECT sum(case when (gender)=1 THEN 1 ELSE 0 END), 
     GROUP_CONCAT(sum(case when (gender)=2 THEN 1 ELSE 0 END) SEPARATOR ' ') as combine   
from family_member_tbl 
GROUP BY gender 
+0

相同的行吗?对于所有性别,只需删除GROUP BY。 – jarlh

+0

我不明白总结是否性别(即,如果性别= 2,那么一个事件计为两个)。计数会更好吗?如果是这样,那么@拉胡尔的解决方案可以相应地进行调整。 – RMathis

+1

请提供原始数据样本和预期结果,这将有助于很多 – Alex

回答

1

不,你不能嵌套这样的分组功能。宁可拿到总额,然后group_concat()

select sum_1, sum_2, group_concat(sum_2) as combine 
from (
SELECT gender, 
     sum(case when gender = 1 THEN 1 ELSE 0 END) as sum_1, 
     sum(case when gender = 2 THEN 1 ELSE 0 END) as sum_2   
from family_member_tbl 
GROUP BY gender) xxx 
group by gender;