안녕하세요!
각 부서에서 수입이 가장 높은 직원을 찾아내는 문제입니다.
위 이미지의 Output과 같이 결과를 출력해야 합니다.
서브쿼리와 이너조인을 활용한 풀이입니다.
1. 부서 별로 가장 높은 수입을 찾는다. (첫번째 INNER JOIN 의 서브쿼리)
2. 1에서 찾은 부서와 수입이 같은 직원을 찾아서 employee 테이블과 INNER JOIN 한다.
JOIN 기준은 departmentid 와 salary
(INNER JOIN : 조인하려는 테이블 사이에 동일한 데이터가 있는 부분만 출력된다.)
3. 부서 이름을 출력하기 위해 department 테이블과 INNER JOIN 한다.
select d.name Department, e.name Employee, e.salary Salary
from employee e
inner join (select departmentid, max(salary) max_salary
from employee
group by 1) dh
on e.departmentid = dh.departmentid
and e.salary = dh.max_salary
inner join department d
on d.id = e.departmentid
출처 : https://leetcode.com/problems/department-highest-salary/
'배우기 > SQL' 카테고리의 다른 글
Leetcode - 180.Consecutive Numbers(조인)_MySQL (0) | 2022.04.18 |
---|---|
HackerRank - The Report(CASE WHEN/조인, BETWEEN)_MySQL (0) | 2022.04.18 |
HackerRank - Top Competitors (조인)_MySQL (0) | 2022.04.11 |
HackerRank - Top Earners (서브쿼리 / GROUP BY 외)_MySQL (0) | 2022.04.08 |
HackerRank - Challenges (조인, 서브쿼리 / WITH)_MySQL (0) | 2022.03.07 |
댓글