문제
다음 SQL문에서 HAVING 절의 역할로 가장 적절한 것은?
SELECT 과목명, AVG(점수) AS 평균점수 FROM 성적 GROUP BY 과목명 HAVING AVG(점수) >= 80;
① 개별 학생의 점수가 80점 이상인 레코드만 선택한다 ② 과목별로 그룹화하기 전에 조건을 적용한다 ③ 과목별 평균점수가 80점 이상인 그룹만 선택한다 ④ 결과를 평균점수 순으로 정렬한다
정답
3번
해설
HAVING 절은 GROUP BY로 그룹화된 후의 집계 결과에 조건을 적용한다. 이 예제에서는 과목별로 계산된 평균점수가 80점 이상인 그룹만을 최종 결과로 선택한다. ①은 WHERE 절의 역할이고, ②는 WHERE 절이 그룹화 전에 적용되는 것과 반대이며, ④는 ORDER BY 절의 역할이다.