본문 바로가기
배우기/SQL

LeetCode - 184.Department Highest Salary (조인, 서브쿼리)_MySQL

by 인사잘해 2022. 4. 8.

안녕하세요!

 

 

각 부서에서 수입이 가장 높은 직원을 찾아내는 문제입니다.

위 이미지의 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/

댓글