조건부 집계를 여러 번 사용하면 한 그룹의 서로 다른 범주를 각각의 컬럼으로 펼칠 수 있습니다.
모든 부서의 부서명, 고액 인원, 중간 인원, 저액 인원을 조회하세요. 고액은 급여 4000 이상, 중간은 3000 이상 4000 미만, 저액은 3000 미만입니다. 사원이 없는 부서는 세 값 모두 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 을 눌러보세요.