문제
SQL문의 논리적 연산 순서로 옳은 것은?
① SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY ② WHERE - FROM - HAVING - GROUP BY - SELECT - ORDER BY ③ FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY ④ FROM - WHERE - HAVING - GROUP BY - SELECT - ORDER BY
정답
3번
해설
정답: 3. SQL의 논리적 처리 순서는 FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY 순서이다.
오답 풀이
- 1번: SELECT가 FROM보다 먼저 처리된다고 보아 틀렸다.
- 2번: WHERE가 FROM보다 먼저 올 수 없고 GROUP BY와 HAVING 순서도 잘못되었다.
- 3번: 논리적 처리 순서가 올바르다.
- 4번: HAVING은 GROUP BY 이후 그룹에 대해 적용된다.
보충 개념 SQL 작성 순서와 논리적 실행 순서는 다르다. SELECT 별칭을 WHERE에서 사용할 수 없는 이유도 WHERE가 SELECT보다 먼저 처리되기 때문이다.