쿼리문의 실행순서에 대한 문의
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
리트코드 1280. Students and Examinations
0
77
3
16강 LEFT JOIN 리트코드 (183. Customers Who Never Order) 관련 질문
0
90
2
African Cities 문제관련 질문
0
57
1
SQL 코딩테스트 질문
0
211
1
HACKER RANK에서 문제찾기
0
100
2
강의 자료 다운로드
0
91
2
Asian population 문제가 없어요
0
80
2
INNER JOIN 에서 A.키 쓸때 빨간 색 나오고 'dause'
0
69
2
별칭 관련해서 질문 있습니다.
0
81
2
rising temperature 문제 질문
0
99
2
해커랭크 TOP EARNERS 문제 질문
0
102
1
ON 뒤에 질문
0
98
2
INNER JOIN 질문. 강의와 결과값이 다릅니다.
0
201
3
END, 뒤에 * 붙이면 에러가 뜹니다
1
206
2
CustomerID가 중복되서 나타나요
0
236
3
별칭이 전체 테이블을 못 불러와요.
0
145
2
CASE WHEN 쿼리 오류 문의
1
326
3
CASE문제풀이 질문
0
128
1
Customers Who Never Order 풀다가 Alias관련 질문사항
0
139
1
Average Population 질문
0
132
1
Revising Aggregations - The Count Function 질문
0
105
1
Average Population of Each Continent 에대해서 질문
0
194
3
w3schools 에서 쿼리 작성 질문
0
160
1
INNER JOIN 할 때 NULL 값이 안보일 수도 있나요?
0
330
1





