OkBublewrap

Top Three Salaries 본문

개발/SQL

Top Three Salaries

옥뽁뽁 2025. 3. 8. 16:33

Top Three Salaries

문제

1. 각 부서별로 급여 순위를 매기기

2. 상위 3위 안에 해당하는 직원을 찾기

3. 부서이름 오름차순, 급여 내림차순, 같은 급여 이름 오름차순

풀이

-- 각 부서에서 고소득자의 이름, 부서 이름, 연봉 출력
-- 연봉은 내림차순으로 정렬
-- 동일한 연봉을 받는 직원들은 이름을 알파벳 순으로 정렬

select d.department_name, a.name, a.salary
from (
  select *,
    dense_rank() over (PARTITION by department_id order by salary desc) as rn
  from employee 
) a
INNER join department d on a.department_id = d.department_id
where rn <=3
order by department_name asc, salary desc, name asc;

1️⃣ 서브쿼리: 부서별 파티션, 급여 순으로 내림차순 정렬로 순위(1, 2, 3 유지 ➡ dense_rank)

2️⃣ join: departmente_id으로 결합

3️⃣ where: 순위 3위 

4️⃣ order by: department_name 오름차순, salary 내림차순, name 오름차순

'개발 > SQL' 카테고리의 다른 글

Duplicate Job Listings  (0) 2025.03.09
Top 5 Artists  (0) 2025.03.08
Highest-Grossing Items  (0) 2025.03.08
Highest-Grossing Items  (0) 2025.03.08
Sending vs. Opening Snaps  (0) 2025.03.08