
부서별로 TOP 3 급여를 받는 직원을 출력하라.
[Department Top Three Salaries]
🔑 핵심 포인트
- CTE에서 부서별로 급여 랭킹 부여
- TOP3 급여를 받는 직원을 메인 쿼리에 작성
❗ DENSE_RANK를 사용한다.
WITH CTE AS (
SELECT *, DENSE_RANK() OVER (PARTITION BY DEPARTMENTID ORDER BY SALARY DESC) AS RNK
FROM EMPLOYEE
)
SELECT D.NAME AS DEPARTMENT, E.NAME AS EMPLOYEE, SALARY
FROM CTE E JOIN DEPARTMENT D
ON E.DEPARTMENTID = D.ID
WHERE RNK <= 3