2017-04-15 1 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

예상 출력은 ... –

관련 문제