그룹 집계 결과를 조건으로 필터링합니다.
WHERE는 그룹화 전 개별 행을, HAVING은 그룹화 후 집계 결과를 거릅니다. 가능한 행 조건은 WHERE에 먼저 두어 집계할 데이터 양을 줄입니다.
보고서 조건을 행 조건과 그룹 조건으로 분리해 쿼리 의도를 리뷰할 수 있게 작성합니다.
집계 함수 조건을 WHERE에 쓰면 아직 그룹이 만들어지지 않아 오류가 납니다.
HAVING이 GROUP BY로 묶인 결과에만 조건을 거는 동작은 SQL 표준이라 SQLite·MariaDB·PostgreSQL에서 동일합니다.
HAVING을 일반 행 필터 대용으로 남용하지 마세요.
직접 바꿔보세요paid 주문만 대상으로 총매출 3만원 이상인 고객을 찾으세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.