-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
leetcode 184 문제 쿼리 질문 드립니다.
23.03.08 18:11 작성 조회수 299
0
안녕하세요! leetcode 184. Department Highest Salary 풀이영상 잘 봤습니다. 풀이영상 보기 전에 계속 답이 틀리다가 결국 성공한건 아래의 쿼리인데, 아무리 생각해도 비효율적인 쿼리처럼 보여서요! 풀이영상처럼 푸는 방법말고 with 문과 이너쿼리를 사용하는데 좀 더 간결하게 작성할 수 있는 방법이 있을까요?
with dd as (
select d.name as name, max(e. salary) as max_salary
from Employee e
join Department d on e.departmentID = d.id
group by d.name)
select d.name as Department, e.name as Employee, e.salary as Salary
from Employee e
join Department d on e.departmentID = d.id
join dd on dd.name = d.name
where e.salary = dd.max_salary
답변을 작성해보세요.
0
지식공유자 J
지식공유자2023.05.01
with 문으로 만든 임시테이블에는 name 컬럼이 필수적으로 필요한 것이 아니므로 여기서 join을 하지 말고 employee 테이블만 사용해 작성하는 편이 나을 것 같습니다.
with dd as (
select departmentid, max(salary) as max_salary
from employee
group by departmentid
)
이렇게 하면 전체 쿼리에서 join을 한 번 덜 사용하는 함으로서 보다 효율적인 쿼리로 작성할 수 있습니다.
답변 1