• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    해결됨

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

20.07.28 19:42 작성 조회수 280

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