HAVING 절

HAVING 절 (HAVING Clause)

그룹핑이 끝난 뒤에 결과를 필터링하고 싶을 때가 있어요. HAVING 절은 GROUP BY 절 뒤에서, 그룹핑이 완료된 후에 필터 기준을 제공할 수 있게 해주는 절이에요. 문법적으로는 WHERE 절과 동일하지만, WHERE 절이 그룹핑 이전에 적용되는 반면 HAVING 절은 그룹핑 이후에 적용된다는 점이 핵심 차이죠.

출처: DuckDB 공식 문서 — 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);

더 알아보기 (Learn more)