SQL 코드카타_Department Top Three Salaries
# 목적, 목표 : 부서별 top 3 연봉받는 직원의 부서명, 이름, 연봉 추출
# 필요한 컬럼 : e.name, d.name, e.salary
# 컬럼 조건 : 없음
# 사용할 테이블 : Employee, Department
# join key : e.departmentId = d.id
# 테이블 조건 : DR <= 3
# 필요한 그룹 : d.id
# 필요한 그룹 조건 : order by Salary desc
# 정렬 기준 : in any order
# 주의사항 : dense_rank
WITH A AS ( # 부서별 연봉 내림차순 dense_rank
SELECT d.name as Department, e.name as Employee, e.salary as Salary, DENSE_RANK() OVER(partition by d.id order by e.salary desc) as DR
FROM Employee e inner join Department d on e.departmentId = d.id)
SELECT Department, Employee, Salary
FROM A
WHERE DR <= 3 ;