2편 이상 개봉한 연월만 조회하려고 WHERE 절에 조건 COUNT(*) > 1을 주었는데 오류가 발생했습니다. 오류 메시지를 보면 ‘Invalid use of group function’이라고 나옵니다. WHERE 절에는 집계 함수를 사용할 수 없는데, 코드 7-23에서 이를 사용해서 오류가 발생했습니다. 집계 함수가 반환한 값을 조건으로 주려면 다음처럼 HAVING 절을 사용해야 합니다.
코드 7-24
SELECT EXTRACT(YEAR_MONTH FROM release_date) 개봉연월, COUNT(*) 개봉편수
FROM box_office
WHERE 1 = 1
AND ranks BETWEEN 1 AND 10
GROUP BY EXTRACT(YEAR_MONTH FROM release_date)
HAVING COUNT(*) > 1
ORDER BY 1 DESC;
실행결과