2017-04-15 77 views
0

我必须以每个单元中的男性数量,女性数量来显示摘要。请尝试以下查询:MySQL GROUP BY没有给出想要的结果

SELECT 
    unit, 
    CASE gender 
     WHEN 'Male' THEN COUNT(id) 
    END AS 'male', 
    CASE 
     WHEN gender = 'Female' THEN COUNT(id) 
    END AS 'female' 
FROM 
    admission_info 
WHERE 
    admission_date = '2017-04-15' 
GROUP BY gender 

下面是显示输出的Fiddle。但我想在1行中显示单位名称,男性人数,女性人数。

+0

由单元组,而不是性别 –

回答

5
SELECT unit, 
sum(CASE gender WHEN 'Male' THEN 1 else 0 END) AS 'male', 
sum(CASE WHEN gender='Female' THEN 1 else 0 END) AS 'female' 
FROM admission_info WHERE admission_date='2017-04-15' 
group by unit 
+0

PERFECT输出。谢谢。 – sunny93

+0

在最后添加GROUP BY单元,否则它始终返回1行,无论单位是A还是B. – sunny93

1
SELECT unit, gender, count(id) as count 
FROM admission_info WHERE admission_date='2017-04-15' GROUP BY unit, gender 
+0

它返回2行 – sunny93

+0

是的,你有什么期待做? @ sunny93 – wajeeh

+0

期望的输出是在问题... –