문제
다음 SQL에서 WHERE 조건과 HAVING 조건이 모두 적용되는 순서로 가장 적절한 것은?
SQLSELECT CATEGORY, AVG(PRICE) AS AVG_PRICE FROM PRODUCT WHERE PRICE > 1000 GROUP BY CATEGORY HAVING COUNT(*) >= 3 ORDER BY AVG_PRICE DESC;
① WHERE → GROUP BY → HAVING → SELECT → ORDER BY ② GROUP BY → WHERE → SELECT → HAVING → ORDER BY ③ WHERE → GROUP BY → SELECT → HAVING → ORDER BY ④ FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
정답
4번
해설
SQL 실행 순서는 FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY입니다. ① WHERE가 먼저 오지만 FROM이 빠졌습니다. ② GROUP BY가 WHERE보다 먼저 실행될 수 없습니다. ③ SELECT가 HAVING보다 먼저 실행되면 집계 조건을 적용할 수 없습니다. ④가 정확한 실행 순서입니다.