having은 group by 뒤에 group by에 의해 그룹화된 결과에 대해 적용된다. where처럼 개별 행에 적용되는 것이 아니다.
예시를 보자.
🎯 부서별 평균 급여가 5000 이상인 부서만 조회하기
SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
HAVING AVG(salary) >= 5000; -- ✅ 그룹화된 결과 필터링
여기서 HAVING은 부서에 의해 그룹화된 각각 부서그룹에 적용됐다. 이와 같이 having은 대부분 사용시 avg,max,min,sum,count등 그룹함수와 함께 사용된다.(꼭 그룹함수를 써야하는 것은 아니다.)