inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

리트코드 184번 문제

305

oioi0070

작성한 질문수 1

0

안녕하세요! :)

열심히 수강하고 있는 학생입니다!

다름 아니라, 알려주신 방법대로 풀이 했는데, 아래 부분이 잘 이해가 안 가서요 ㅠㅠ 혹시 답변 부탁 드려도 될까요? 감사합니다!

<풀이>
SELECT
C.name as Department
,A.name as Employee
,A.salary as Salary
FROM Employee A
INNER JOIN
(SELECT
departmentId
,MAX(salary) as max_salary
FROM Employee
GROUP BY 1) B
ON A.departmentId = B.departmentId
AND A.salary = B.max_salary
INNER JOIN Department C
ON A.departmentid = C.id
<질문>
위 풀이에서, "ON A.departmentId = B.departmentId" 이 부분이 잘 이해가 안 갑니다.
Alias 'A'로 지정한 테이블에서 분명 C.name, A.name, A.salary만 가져왔는데, 어떻게 존재하지도 않은
A.departmentId를 활용하여 B.departmentId와 매칭 시킬 수 있나요?

sql

답변 2

0

지식공유자 J

안녕하세요.
쿼리를 작성할 때는 위에서부터 SELECT 절 -> FROM 절 순이 되지만 실제로 동작할 때는 FROM 절이 먼저 실행됩니다.
FROM 절에서 A 테이블과 B 테이블의 조인이 먼저 일어나고, 조인을 통해 만들어진 데이터로부터 조회할 컬럼을 SELECT 절에 쓰는 것이기 때문에 SELECT 절에 없는 컬럼을 조인 키로 사용할 수 있습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요. 질문에 답변드리겠습니다.

쿼리에서 A, B, C는 각각 Employee, 서브쿼리로 생성된 테이블, Department 테이블을 나타내는 별칭입니다. A.departmentId는 Employee 테이블의 departmentId 컬럼을 의미하고, B.departmentId는 서브쿼리로 생성된 B 테이블의 departmentId 컬럼을 의미합니다.

INNER JOIN 구문에서 ON A.departmentId = B.departmentId는 Employee 테이블과 서브쿼리로 생성된 B 테이블을 departmentId 컬럼을 기준으로 조인한다는 의미입니다. 이를 통해 Employee 테이블의 각 직원이 속한 부서의 최고 급여인지 확인할 수 있습니다.

결과적으로, 위 쿼리는 Employee 테이블에서 최고 급여를 받는 직원이 속한 부서와 급여 정보를 조회하는 쿼리입니다.

추가로 질문이 있으시면 언제든지 물어보세요! 좋은 하루 되세요.

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

0

85

1

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

0

58

2

서브쿼리 질문

0

59

2

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

0

72

1

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

0

68

1

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

0

66

2

Top Earners 문제관련 질문

0

96

2

고급반 cheetsheet

0

149

2

196. Delete Duplicate Emails 좋은 코드 질문

0

141

1

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

0

125

0

강의 플랫폼

0

199

3

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

0

205

2

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

0

249

1

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

0

356

2

사용자정의함수

0

230

1

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

0

295

1

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

0

259

1

196. subquery로 풀 때, 궁금한 점

0

383

2

쿼리성능 질문드립니다.

0

313

1

리트코드 highest department salary 문제

0

258

2

The report 문제 order by부분 질문

0

269

2

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

0

420

1

DEPARTMENT HIGHEST SALARY 서브쿼리 문제 문의

0

235

1

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

0

284

1