문제
다음 중 SQL문에서 HAVING문을 사용하여 조건을 설정할 수 있는 것은?
① GROUP BY 절 ② LIKE 절 ③ WHERE 절 ④ ORDER BY 절
정답
1번
해설
정답: 1. HAVING 절은 GROUP BY로 그룹을 묶은 결과에 대해 조건을 지정하는 절이다. 따라서 HAVING은 항상 GROUP BY와 함께 사용된다.
오답 풀이
- 1번: HAVING은 GROUP BY로 묶은 그룹에 조건을 거는 절이므로 옳다.
- 2번: LIKE는 WHERE 절에서 문자열 패턴을 비교하는 연산자이지 HAVING의 대상이 아니다.
- 3번: WHERE는 그룹화 이전 개별 행에 조건을 거는 절이며 HAVING과 역할이 다르다.
- 4번: ORDER BY는 결과 정렬을 지정하는 절로 조건 설정과 무관하다.
보충 개념 WHERE는 그룹화 전 행을 필터링하고, HAVING은 그룹화(집계) 후 그룹을 필터링한다. 따라서 집계 함수 조건(예: SUM(x)>100)은 HAVING에 쓴다.