인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Alias45님의 프로필 이미지
Alias45

작성한 질문수

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

CASE

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

해결된 질문

작성

·

393

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를 사용할 수 있는지 궁금합니다.

답변 1

0

이보민님의 프로필 이미지
이보민
지식공유자

안녕하세요 Alias45님

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

Problems with Column Aliases

Stackoverflow

Alias45님의 프로필 이미지
Alias45

작성한 질문수

질문하기