문제
- LeetCode SQL 문제
184. Department Highest Salary / Medium
- 문제 내용 : [링크]
내가 작성한 Query
with temp_01 as( select b.name as Department , a.name as Employee , salary as Salary , a.departmentid as dept_id from employee a join department b on a.departmentid = b.id ) select department, employee, salary from temp_01 where (dept_id, salary) in (select departmentid, max(salary) from employee group by departmentid)
사원정보 테이블(employee
)과 부서정보 테이블(department
) 테이블을 departmentid
와 id
를 기준으로 JOIN
해 준다.
이후 Department
, Employee
, Salary
, dept_id
를 저장한 임시테이블 temp_01
을 생성해준다.
temp_01
에서 WHERE
절 조건을 서브쿼리를 이용해 작성한다. 각 부서별 salary
가 (즉 dept_id, salary
)가 최대값을 가지는 데이터만 출력하는 조건을 주어 필터링한다. (select departmentid, max(salary) from employee group by departmentid)
⭐ 특정 컬럼의 집계함수 MAX()
값을 가지는 데이터의 다른 컬럼을 출력하는 문제이다. 서브쿼리를 통해 WHERE
절 조건을 작성하였다.
같은 최대값을 가지는 모든 데이터를 출력하는 문제였다.