본문으로 건너뛰기
실습하기

WHERE vs HAVING

이 강의에서는 WHEREHAVING의 차이를 자세히 배웁니다.

WHEREHAVING은 모두 데이터를 필터링하지만, SQL 쿼리에서 동작하는 단계가 다릅니다.


WHERE: 집계 이전의 행 필터링

WHERE 절은 어떤 집계나 그룹화가 일어나기 전, 개별 레코드를 필터링합니다.

그룹화 전에 필터링
SELECT client_name, region, order_total
FROM client_orders
WHERE region = 'USA';

미국(USA) 지역 고객이 한 모든 주문이 반환됩니다.


HAVING: 그룹화 이후의 필터링

HAVING 절은 보통 GROUP BY와 함께 사용되며, 집계 이후의 그룹을 필터링합니다.

집계 후 그룹 필터링
SELECT region, AVG(order_total) AS avg_order
FROM client_orders
GROUP BY region
HAVING AVG(order_total) > 200;

평균 주문 금액이 200보다 큰 지역만 반환합니다.


요약: 언제 무엇을 사용할까

무엇을 필터링하나집계 함수와 함께 동작?
WHERE개별 행❌ 집계와 함께 직접 사용 불가
HAVING집계 이후의 그룹✅ 가능

개별 행 기준 필터에는 WHERE를 사용하세요. 집계 결과를 필터링할 때는 HAVING을 사용하세요.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!