SQL

리트코드(LeetCode) MySQL-Department Top Three Salaries

potatode 2022. 8. 10. 12:26
SELECT ranking.Department,
        ranking.Employee,
        ranking.Salary
FROM 
    (SELECT d.name as Department ,
            e.name as Employee,
            e.salary as Salary,
            DENSE_RANK() over (PARTITION BY e.departmentID ORDER BY e.salary DESC) as rank
    FROM Employee as e
    INNER JOIN Department as d
    on e.departmentId=d.id) as ranking
WHERE ranking.rank<=3

Hard 문제이지만 윈도우 함수를 쓰면 쉽게 풀 수 있다.

반응형