2011-08-10 5 views
1

'EMPLOYEE'테이블이 하나 있습니다. 'emp_no'를 계산해야하므로 여러 제한 사항을 기반으로 각 집계에 여러 개의 열이 있습니다. 아래 출력을 얻기 위해 쓰는 방법을 모릅니다.하나의 테이블에서 여러 개의 집계 출력

SELECT DEP_NO, COUNT(EMP_NO) Active 
FROM EMPLOYEE 
WHERE STATUS = 'active' 

SELECT DEP_NO, COUNT(EMP_NO) "On Leave" 
FROM EMPLOYEE 
WHERE STATUS = 'on leave' 


dep_no| Active On Leave Female Male 
------|------------------------------ 
1 | 236  10  136 100 
2 | 500  26  250 250 
3 | 130  2  80  50 
4 | 210  7  60 150 

답변

0

한 가지 가능한 대답은 완벽

SELECT DEP_NO, SUM(CASE WHEN STATUS = 'active' THEN 1 ELSE 0 END) AS Active, 
       SUM(CASE WHEN STATUS = 'on leave' THEN 1 ELSE 0 END) AS [On Leave], 
       SUM(CASE WHEN STATUS = 'female' THEN 1 ELSE 0 END) AS Female, 
       SUM(CASE WHEN STATUS = 'male' THEN 1 ELSE 0 END) AS Male 
FROM EMPLOYEE 
GROUP BY DEP_NO 
+0

당신을 감사 SUM + CASE를 사용하는 것입니다. 어쨌든 두 번째 테이블을 추가하고 싶다면 결과를 결합 하시겠습니까? UNION은 행 수를 복제합니다. –

+0

내 마지막 코멘트를 알아 냈습니다. 감사 –

관련 문제