inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Department Highest Salary 질문

147

Heekang Jeon

작성한 질문수 2

2

안녕하세요! 저는 아래처럼 작성했는데, 혹시 이 방식은 틀린걸까요? 

SELECT D.Name as Department, M.Name as Employee, M.Salary as Salary

FROM (SELECT Name, MAX(Salary), DepartmentId

        FROM Employee

        GROUP BY DepartmentId;

        ) AS M

JOIN Department AS D

ON M.DepartmentId = D.Id

sql

답변 1

0

송혜정

안녕하세요 Heekang Jeon님, 답변 드립니다.

해당 코드를 리트코드에서 실행 후 오류가 나는 것을 확인하셨을 텐데요,

1) 우선 FROM절 서브쿼리 내에서 MAX(Salary)의 alias를 작성하지 않았기 때문에, 첫 번째 SELECT절에 적어주신 M.Salary는 존재하지 않습니다. 따라서 FROM (SELECT Name, MAX(Salary) as Salary, DepartmentId 와 같이 두 번째 줄의 코드를 수정해야 합니다.

2) GROUP BY 절에는 SELECT 절에 작성된, 집계함수를 제외한 모든 컬럼을 적어주어야 합니다. 작성하신 서브쿼리에서 Name을 출력하신다면, GROUP BY 에 Name도 추가해주셔야 합니다. 하지만 해당 서브쿼리만 따로 실행해보면, GROUP BY 에 Name을 추가함의 여부와 관계없이 예상한 결과와는 다름을 알 수 있습니다. 따라서 강의에서는 DepartmentId별로 Max(Salary)를 출력해 Employee 테이블과 JOIN하여 쿼리를 작성하였습니다.

3) 서브쿼리의 출력 결과가 적절하지 않기 때문에, Department 테이블과의 JOIN에서도 틀린 결과가 출력됩니다.

서브쿼리를 사용하실 때는, 서브쿼리만 별도로 실행하여 내가 원하는 값이 나오는 지 확인 후 순서대로 쿼리를 쌓아간다는 느낌으로 진행하시는 것이 좋습니다. 또한, 집계함수 사용 시에는 alias를 작성했는 지 반드시 확인해주세요.


해당 쿼리를 직접 다시 수정해보시고 강의 참고하시면 도움이 될 것 같습니다.
좋은 질문 감사드리고, 궁금한 점 있으시다면 언제든 질문 남겨주세요 :)

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

0

85

1

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

0

58

2

서브쿼리 질문

0

59

2

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

0

72

1

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

0

67

1

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

0

66

2

Top Earners 문제관련 질문

0

96

2

고급반 cheetsheet

0

146

2

196. Delete Duplicate Emails 좋은 코드 질문

0

140

1

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

0

125

0

강의 플랫폼

0

197

3

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

0

204

2

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

0

249

1

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

0

355

2

사용자정의함수

0

230

1

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

0

295

1

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

0

259

1

196. subquery로 풀 때, 궁금한 점

0

382

2

쿼리성능 질문드립니다.

0

313

1

리트코드 highest department salary 문제

0

257

2

The report 문제 order by부분 질문

0

269

2

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

0

420

1

DEPARTMENT HIGHEST SALARY 서브쿼리 문제 문의

0

235

1

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

0

282

1