inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

GROUP BY 해커랭크 문제풀이

쿼리 실행 순서

200

Kang MJ

작성한 질문수 2

5

안녕하세요. top earners에 대해 질문이 있습니다.

코드가

select months*salary as earning, count(*)

from employee

group by earning

order by earning desc

limit 1

로 되어 있는데요.

제가 알기로는 쿼리 실행 순서가 group by -> select 인 걸로 아는데. 어떻게 group by가 earning에 걸릴 수 있는 지 모르겠습니다.ㅜㅜ

저는 from에 서브쿼리로 earning이 있는 table을 만들어서 실행했는데요. 위의 코드가 돌아가는 걸 보고 깜짝 놀랐습니다.

( *제가 쓴 코드입니다.

select earning, count(*)

from (select months*salary as earning 

      from employee) as new_table

group by earning

order by earning desc

limit 1)

이해를 해야 다음에 같은 문제가 나왔을 때 해결할 수 있을것 같아 질문 드립니다. 답변 부탁드리겠습니다.

sql

답변 2

1

이보민

안녕하세요 Kang MJ님,

시간이 많이 지났지만 이전 답변에서 설명이 충분치 못했던 것 같아, 관련 된 내용을 설명하고 있는 MySQL 공식 레퍼런스와 stackoverflow 문답을 첨부드립니다. 도움이 되셨길 바랍니다 :)

Problems with Column Aliases

SQL - using alias in Group By_Stackoverflow

1

이보민

안녕하세요 Kang MJ님 답변이 늦어져서 죄송합니다.

말씀하신 대로 일반적으로 GROUP BY가 SELECT구문보다 먼저 실행되므로 서브쿼리를 이용하시는 것이 맞습니다.

해당 사안은 해커랭크에서 사용하는 SQL 인터프리터의 특이성 때문에 발생하는 예외 현상으로 보여지는데요. 정확한 답변 드리기 위해 여러가지 경우를 찾아보았으나 뚜렸하게 해당 사안에 대해 설명이 가능한 레퍼런스를 찾지 못하였습니다.

참고 부탁드리고, 다시 한번 답변이 너무 늦어진 점 사과드리며 좋은 질문 남겨주셔서 감사합니다 :)

리트코드 1280. Students and Examinations

0

74

3

16강 LEFT JOIN 리트코드 (183. Customers Who Never Order) 관련 질문

0

89

2

African Cities 문제관련 질문

0

53

1

SQL 코딩테스트 질문

0

206

1

HACKER RANK에서 문제찾기

0

96

2

강의 자료 다운로드

0

90

2

Asian population 문제가 없어요

0

77

2

INNER JOIN 에서 A.키 쓸때 빨간 색 나오고 'dause'

0

66

2

별칭 관련해서 질문 있습니다.

0

79

2

rising temperature 문제 질문

0

98

2

해커랭크 TOP EARNERS 문제 질문

0

99

1

ON 뒤에 질문

0

94

2

INNER JOIN 질문. 강의와 결과값이 다릅니다.

0

196

3

END, 뒤에 * 붙이면 에러가 뜹니다

1

203

2

CustomerID가 중복되서 나타나요

0

233

3

별칭이 전체 테이블을 못 불러와요.

0

142

2

CASE WHEN 쿼리 오류 문의

1

325

3

CASE문제풀이 질문

0

124

1

Customers Who Never Order 풀다가 Alias관련 질문사항

0

136

1

Average Population 질문

0

129

1

Revising Aggregations - The Count Function 질문

0

104

1

Average Population of Each Continent 에대해서 질문

0

193

3

w3schools 에서 쿼리 작성 질문

0

159

1

INNER JOIN 할 때 NULL 값이 안보일 수도 있나요?

0

329

1