184. Department Highest Salary
문제
Write an SQL query to find employees who have the highest salary in each of the departments.
Return the result table in any order.
# 부서별로 가장 높은 연봉을 받는 직원 출력
똑같은 연봉을 받는 직원이 여러명이면 모두 출력해야 함.
나의 풀이 : JOIN 후 WHERE절 서브쿼리 이용
SELECT d.name AS Department
,e.name AS Employee
,e.salary AS Salary
FROM employee e
INNER JOIN department d ON e.departmentid = d.id
WHERE (e.departmentid, e.salary) IN (SELECT departmentid
,MAX(salary)
FROM employee
GROUP BY departmentid)
+) 다른 풀이: FROM절 서브쿼리 이용( 서브쿼리로 만든 테이블을 JOIN)
SELECT d.name AS Department
,e.name AS Employee
,e.salary AS Salary
FROM employee e
INNER JOIN(
SELECT departmentid ,MAX(salary) AS max_salary
FROM employee
GROUP BY departmentid
) dh ON e.departmentid = dh.departmentid
AND e.salary = dh.max_salary
INNER JOIN department d ON e.departmentid = d.id
'SQL > LeetCode' 카테고리의 다른 글
| [SQL] LeetCode: 184. Department Highest Salary (윈도우 함수) (0) | 2023.06.24 |
|---|---|
| [SQL] LeetCode: 180. Consecutive Numbers (0) | 2023.06.23 |
| [SQL] LeetCode: 196. Delete Duplicate Emails (0) | 2023.06.08 |
| [SQL] LeetCode: 627. Swap Salary (0) | 2023.06.07 |
| [SQL] LeetCode: SELF JOIN 문제 (0) | 2023.05.31 |