HAVING 절
HAVING 절 (HAVING Clause)
그룹핑이 끝난 뒤에 결과를 필터링하고 싶을 때가 있어요. HAVING 절은 GROUP BY 절 뒤에서, 그룹핑이 완료된 후에 필터 기준을 제공할 수 있게 해주는 절이에요. 문법적으로는 WHERE 절과 동일하지만, WHERE 절이 그룹핑 이전에 적용되는 반면 HAVING 절은 그룹핑 이후에 적용된다는 점이 핵심 차이죠.
예제 (Examples)
addresses 테이블에서 각기 다른 도시(city)에 속하는 항목 수를 세되, 개수가 50 미만인 도시는 걸러내볼게요:
SELECT city, count(*)
FROM addresses
GROUP BY city
HAVING count(*) >= 50;
도시별・street_name별 평균 소득을 계산하되, 평균 소득이 중앙값 소득의 두 배보다 큰 도시는 걸러내볼게요:
SELECT city, street_name, avg(income)
FROM addresses
GROUP BY city, street_name
HAVING avg(income) > 2 * median(income);