SQL/문제풀이

[Leetcode] Department top three salaries

응엉잉 2024. 5. 8. 17:38

https://leetcode.com/problems/department-top-three-salaries/

-- department별로 연봉 순위 매기기
SELECT Department, Employee, Salary
FROM (
    SELECT d.name AS Department,
        e.name AS Employee,
        e.salary,
        DENSE_RANK() OVER (PARTITION BY e.departmentId ORDER BY e.salary DESC) AS rnk
    FROM employee e
        INNER JOIN department d ON e.departmentId = d.id
) sub
WHERE rnk <=3

SELECT 절에서 연산한 내용 (rnk)을 WHERE절 서브쿼리에 사용할 수 없기 때문에

FROM절 서브쿼리에 넣어서 연산해줘야 함