inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

서브쿼리 해커랭크 문제풀이

Top Earner MAX질문

263

김혜수

작성한 질문수 10

0

SELECT *
FROM (
        SELECT name
             , MAX(months*salary) max_earnings
        FROM employee
        GROUP BY name
        ) total_earning
ORDER BY max_earnings DESC

제가 위와 같이 쿼리를 작성했었는데요, 예상과는 다르게 모든 사람들의 earnings가 보여지고 MAX earning 하나만 보여지지는 않더라고요. 그 이유가 name 으로 GROUP BY 했기 때문인가요?

sql

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

쿼리를 보면, name을 기준으로 GROUP BY를 하고 있어요. 따라서 각 이름별로 최대 earnings을 구하는 것이 맞지만, 각 이름별로 모든 earnings도 함께 보여지게 됩니다.

MAX 함수를 사용하면 모든 그룹 내의 최대 값만을 가져올 수 있어요. 하지만, 쿼리에서는 GROUP BY를 함께 사용하므로 각 그룹별로 최대 값을 가져오게 되는거죠.

만약 각 그룹별로 최대 값을 가져오는 것이 목적이시라면, MAX 함수를 사용하시면 됩니다.

예를 들어,

SELECT name, MAX(months*salary) max_earnings
FROM employee
GROUP BY name
ORDER BY max_earnings DESC;

이렇게 쿼리를 작성하시면 각 이름별로 최대 earnings 값만을 가져올 수 있습니다.

이해가 되셨는지요?
요청하신 내용에 대한 답변이 되었는지 확인 부탁드려요.

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

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