inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

리트코드 Department Highest Salary

해결된 질문

196

seungha.lee1226

작성한 질문수 2

1

안녕하세요, 문제를 풀어보니까 다음과 같이 Null 값이 나옵니다

이런식으로 null 값이 나오더라고요,

제가 짠 쿼리는 다음과 같습니다

SELECT top_salary.Name AS Department

     , E.Name AS Employee

     , top_salary.Salary AS Salary

FROM

(

    SELECT D.Name

         , max(E.Salary) AS Salary

    FROM Employee AS E

    LEFT JOIN Department AS D ON E.DepartmentId = D.Id

    GROUP BY D.Name

) top_salary

LEFT JOIN Employee AS E ON E.Salary = top_salary.Salary

ORDER BY top_salary.Salary DESC

혹시 시스템 문제인가요? 아니면 쿼리 중 오류가 있어서 그럴까요?

sql

답변 2

1

seungha.lee1226

감사합니다. 답변을 주신 덕분에, 다시 한 번 LEFT JOIN과 INNER JOIN을 복습했고, 수정하여 Submit 하여 Accepted 하였습니다.

1

송혜정

안녕하세요 seungha.lee1226님, 답변 드립니다.

우선 Submit이 되지 않는 이유는 쿼리 오류가 있기 때문이며, 오류가 있는 부분을 직접 수정하며 익히실 수 있도록 설명을 드리겠습니다.

1) Submit하셨을 때 들어간 Input값을 보면, Employee 테이블은 데이터가 있지만 Department 테이블에는 데이터가 없습니다. 따라서 Department의 Name을 알 수 없기 때문에 Expected에 보이는 것 처럼 결과값이 출력이 되지 않아야 합니다. 하지만 작성하신 코드에서는 Employee 테이블을 LEFT JOIN 하였기 때문에 Employee 테이블에 데이터가 없어도 결과가 출력되며, Output의 Department가 null로 출력되고 있습니다. LEFT JOIN을 사용하신 이유가 따로 있으셨다면 그 이유에 대해 다시 한 번 생각해보시길 바라고, JOIN 종류가 아직 헷갈리신다면 차이점을 명확히 알아두시면 좋을 것 같습니다.

2) top_salary와 Employee 테이블을 결합하는 과정에서 단순히 Salary로만 결합을 했기 때문에, Department에 따라 구분이 되고 있지 않습니다. 결합하는 과정에서 어떤 조건이 더 필요할지, 이 경우 top_salary 서브쿼리 안에서 Department가 결합될 필요가 있을 지 생각해보시고 코드 수정해보시길 바랍니다.

답변이 도움이 되길 바라며, 추가 질문 있으시면 언제든 남겨주세요 :)

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

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