CASE가 조건에 맞을 때 1, 아니면 0을 반환하게 하고 합산하면 그룹 안의 조건별 개수를 셀 수 있습니다.
모든 부서의 부서명, 전체 사원 수, 관리자 수, 일반직 수를 조회하세요. 관리자는 직급이 '부장' 또는 '과장'인 사원이고, 일반직은 나머지 직급입니다. 사원이 없는 부서도 모두 0으로 표시합니다.
부서 테이블
| 부서번호 | 부서명 | 지역 |
|---|---|---|
| 10 | 경영 | 서울 |
| 20 | 개발 | 판교 |
| 30 | 영업 | 부산 |
| 40 | 인사 | 대전 |
사원 테이블 — 수당이 없는 사원은 NULL, 부서 미배정 사원은 부서번호가 NULL
| 사원번호 | 이름 | 직급 | 부서번호 | 급여 | 수당 | 입사일 |
|---|---|---|---|---|---|---|
| 1 | 김철수 | 부장 | 10 | 5000 | NULL | 2018-03-01 |
| 2 | 이영희 | 과장 | 20 | 4000 | NULL | 2019-06-15 |
| 3 | 박민수 | 대리 | 20 | 3000 | NULL | 2020-01-10 |
| 4 | 최지우 | 사원 | 20 | 2500 | 500 | 2021-09-01 |
| 5 | 정해인 | 과장 | 30 | 3800 | 300 | 2019-11-20 |
| 6 | 한가인 | 대리 | 30 | 2800 | NULL | 2020-07-07 |
| 7 | 오세훈 | 사원 | 30 | 2200 | 400 | 2022-02-14 |
| 8 | 신동엽 | 부장 | 10 | 5200 | NULL | 2017-05-05 |
| 9 | 김보검 | 사원 | NULL | 2400 | NULL | 2023-01-05 |
결과의 컬럼 이름은 채점하지 않습니다. 값과 행·열의 모양만 맞으면 정답이에요.
SUM(CASE WHEN 조건 THEN 1 ELSE 0 END)로 그룹 안에서 조건에 맞는 행만 셉니다.LEFT JOIN 뒤에는 연결 실패로 생긴 NULL 행을 잘못 세지 않도록 조건을 확인하세요.SQL을 작성하고 Run 을 눌러보세요.