Employee
+--------------+---------+
| Column Name | Type |
+--------------+---------+
| id | int |
| name | varchar |
| salary | int |
| departmentId | int |
+--------------+---------+
id는 이 테이블의 기본 키(고유 값을 가진 열)입니다.
departmentId는 부서 테이블의 ID에 대한 외래 키(참조 열)입니다.
이 테이블의 각 행은 직원의 ID, 이름 및 급여를 나타냅니다. 또한 해당 직원의 부서 ID도 포함되어 있습니다.
Department
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| id | int |
| name | varchar |
+-------------+---------+
id는 이 테이블의 기본 키(고유 값을 가진 열)입니다.
이 테이블의 각 행은 부서의 ID와 이름을 나타냅니다.
회사의 경영진은 회사의 각 부서에서 누가 가장 많은 돈을 버는지 알고 싶어합니다. 한 부서에서 고소득자는 해당 부서의 고유 급여 상위 3개에 속하는 직원을 의미합니다.
각 부서에서 고소득 직원을 찾는 솔루션을 작성합니다.
결과 테이블을 임의의 순서로 반환합니다.
with tmp_tb as ( select B.name as Department , A.name as Employee , A.salary as Salary , dense_rank() over(partition by B.name order by A.salary desc) as dept_rank from Employee A join Department B on A.departmentId = B.id ) select Department , Employee , Salary from tmp_tb where dept_rank <= 3 ;
https://leetcode.com/problems/department-top-three-salaries/?envType=study-plan-v2&envId=top-sql-50