[LeetCode MySQL] 184. Department Highest Salary
2021. 1. 19. 22:10ㆍToday I Learned.../MySQL
184. Department Highest Salary
The Employee table holds all employees. Every employee has an Id, a salary, and there is also a column for the department Id.
+----+-------+--------+--------------+
| Id | Name | Salary | DepartmentId |
+----+-------+--------+--------------+
| 1 | Joe | 70000 | 1 |
| 2 | Jim | 90000 | 1 |
| 3 | Henry | 80000 | 2 |
| 4 | Sam | 60000 | 2 |
| 5 | Max | 90000 | 1 |
+----+-------+--------+--------------+
The Department table holds all departments of the company.
+----+----------+
| Id | Name |
+----+----------+
| 1 | IT |
| 2 | Sales |
+----+----------+
Write a SQL query to find employees who have the highest salary in each of the departments. For the above tables, your SQL query should return the following rows (order of rows does not matter).
+------------+----------+--------+
| Department | Employee | Salary |
+------------+----------+--------+
| IT | Max | 90000 |
| IT | Jim | 90000 |
| Sales | Henry | 80000 |
+------------+----------+--------+
Explanation:
Max and Jim both have the highest salary in the IT department and Henry has the highest salary in the Sales department.
Solution 1 - MAX
select Department, Employee, Salary
from (select d.name Department,
e.name Employee,
e.salary Salary,
max(salary) over (partition by d.id) max_salary
from employee e inner join department d
on e.DepartmentId = d.Id) result
where salary = max_salary
Solution 2 - RANK
select Department, Employee, Salary
from (select d.name Department,
e.name Employee,
Salary,
rank() over (partition by departmentid order by salary desc) ranking
from employee e inner join department d
on e.DepartmentId = d.Id) result
where ranking = 1
Reference: 184. Department Highest Salary
'Today I Learned... > MySQL' 카테고리의 다른 글
[LeetCode MySQL] 177. Nth Highest Salary (0) | 2021.01.19 |
---|---|
[LeetCode MySQL] 185. Department Top Three Salaries (0) | 2021.01.19 |
[LeetCode MySQL] 180. Consecutive Numbers (0) | 2021.01.19 |
[HackerRank MySQL] Symmetric Pairs (0) | 2021.01.11 |
[LeetCode MySQL] 181. Employees Earning More Than Their Managers (0) | 2021.01.11 |