문제
다음 SQL 문에서 HAVING 절의 조건이 적용되는 시점에 대한 설명으로 가장 옳은 것은?
SQLSELECT 지역, AVG(매출액) AS 평균매출 FROM 매장 WHERE 개점년도 >= 2020 GROUP BY 지역 HAVING AVG(매출액) > 5000 ORDER BY 평균매출;
① WHERE 조건 적용 전에 HAVING 조건이 먼저 검사된다 ② GROUP BY로 그룹화된 후 각 그룹에 대해 HAVING 조건이 적용된다 ③ ORDER BY 정렬 후 최종 결과에 HAVING 조건이 적용된다 ④ SELECT 절의 집계함수 계산 전에 HAVING 조건이 적용된다
정답
2번
해설
②가 정답이다. SQL 실행 순서는 FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY 이다. HAVING은 GROUP BY로 생성된 각 그룹에 대해 집계함수 결과를 조건으로 검사한다. WHERE는 개별 행을, HAVING은 그룹을 필터링한다.