SQL HAVING은 그룹화 및 집계 결과에 조건을 적용하는 절이다. 개별 입력 행을 거르는 WHERE와 구별한다.
원리
WHERE를 통과한 행들이 그룹화된 뒤 HAVING 조건으로 결과 그룹을 선택한다. 집계 함수의 결과를 조건에 사용할 수 있다.
SQL |
|---|
SQL SELECT · SQL JOIN · SQL GROUP BY · SQL HAVING · SQL 공통 테이블 식 |
예시
GROUP BY customer_id HAVING COUNT(*) >= 3은 주문 수가 3 이상인 고객 그룹을 찾는 형태이다.
데이터베이스 내부 |
|---|
WAL · 체크포인트 · MVCC · 트랜잭션 격리 수준 · 읽기 커밋 |
데이터베이스 교착 상태 · 비관적 잠금 · 파티셔닝 · 시점 복구 · 데이터베이스 백업 |
주의할 점
행 조건을 HAVING으로만 처리하면 의도가 흐려질 수 있다. 전체 한 그룹을 만드는 집계처럼 GROUP BY가 없는 HAVING의 동작도 사용 DB에서 확인한다.