inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

CASE

쿼리문의 실행순서에 대한 문의

해결된 질문

417

Alias45

작성한 질문수 1

5

SELECT CASE

WHEN CategoryID = 1 THEN '음료'

            WHEN CategoryID = 2 THEN '소스'

            ELSE '이외'

        END AS new_category    

, AVG(Price)

FROM Products

GROUP BY new_category;

저는 SELECT문이 GROUP BY문 이후에 실행되는 것으로 알고 있는데, 위 쿼리문의 GROUP BY에서 어떻게 SELECT문의 alias를 사용할 수 있는지 궁금합니다.

sql

답변 1

0

이보민

안녕하세요 Alias45님

표준 SQL 구문의 실행 순서와 프로덕트들에서 실제 사용되는 SQL 인터프리터들의 실행순서가 조금씩 달라서 헷갈리실 수 있을 것 같네요.
말씀해주신 대로 Standard SQL 쿼리의 경우 GROUP BY는 SELECT 구문 이후에 실행되기 때문에 SELECT 구문에서 사용한 Alias를 가져다 쓸 수 없지만, MYSQL의 경우에는  GROUP BY에서도 SELECT 구문의 Alias가 사용 될 수 있습니다.
자세한 사항은 공식 문서와 관련 stackoverflow 문답 첨부드리니 참고해주세요 :) 

Problems with Column Aliases

Stackoverflow

리트코드 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

76

2

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

0

66

2

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

0

79

2

rising temperature 문제 질문

0

98

2

해커랭크 TOP EARNERS 문제 질문

0

98

1

ON 뒤에 질문

0

94

2

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

0

196

3

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

1

203

2

CustomerID가 중복되서 나타나요

0

232

3

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

0

142

2

CASE WHEN 쿼리 오류 문의

1

324

3

CASE문제풀이 질문

0

124

1

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

0

136

1

Average Population 질문

0

129

1

Revising Aggregations - The Count Function 질문

0

103

1

Average Population of Each Continent 에대해서 질문

0

193

3

w3schools 에서 쿼리 작성 질문

0

159

1

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

0

328

1