2017-03-24 12 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の場合は、1つのオカレンスが2になります。もっとうまくいくでしょうか?もしそうなら、@ Rahulの解をそれに応じて適合させることができます。 – RMathis

+1

生データと期待される結果のサンプルを提供してください。これはたくさんの助けになります – Alex

答えて

1

いいえ、あなたはそのようなグループ化機能をネストすることはできません。むしろ和を最初に得て、次に

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; 
関連する問題