inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[백문이불여일타] 데이터 분석을 위한 고급 SQL

서브쿼리 리트코드 문제풀이

leetcode 184 문제 쿼리 질문 드립니다.

425

cirkiid

작성한 질문수 1

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



sql

답변 1

0

지식공유자 J

with 문으로 만든 임시테이블에는 name 컬럼이 필수적으로 필요한 것이 아니므로 여기서 join을 하지 말고 employee 테이블만 사용해 작성하는 편이 나을 것 같습니다.

with dd as ( 
  	select departmentid, max(salary) as max_salary
	from employee
	group by departmentid
)

이렇게 하면 전체 쿼리에서 join을 한 번 덜 사용하는 함으로서 보다 효율적인 쿼리로 작성할 수 있습니다.

순위 함수 연습 문제 - 스테디셀러 작가 찾기

0

88

1

문제 내용이 잘못된 것 같습니다.

0

59

2

서브쿼리 질문

0

61

2

[수업질문] 서브쿼리 > null데이터 avg사용 주의

0

73

1

서브쿼리는 언제 작성하는건가요?

0

69

1

안녕하세요 질문드립니다.

0

66

2

Top Earners 문제관련 질문

0

97

2

고급반 cheetsheet

0

150

2

196. Delete Duplicate Emails 좋은 코드 질문

0

143

1

a.id = 1과 b.id=1이 없어도 되는 이유

0

127

0

강의 플랫폼

0

199

3

리트코드 177번 function 풀이중 case when 활용을 위한 서브쿼리 구문을 제출 시 검증에 통과되지 않도록 보강된 듯 하네요

0

205

2

ERD 읽는법에 추가 질문 있어요

0

252

1

lead, lag로 풀이할 시 id 값이 존재하지 않는 경우의 오답

0

360

2

사용자정의함수

0

230

1

이 문제 inner join이 이해가 안됩니다.

0

298

1

평균 함수 사용할 때 주의점과 해결법

0

261

1

196. subquery로 풀 때, 궁금한 점

0

385

2

쿼리성능 질문드립니다.

0

315

1

리트코드 highest department salary 문제

0

260

2

The report 문제 order by부분 질문

0

271

2

리트코드 서브쿼리 문제 질문

0

422

1

DEPARTMENT HIGHEST SALARY 서브쿼리 문제 문의

0

237

1

서브쿼리의 활용사례 및 조인관련질문

0

287

1