SQL HAVING 문장

HAVING 절

SQL에서 HAVING 절을 추가하는 이유는 WHERE 키워드가 집계 함수와 함께 사용될 수 없기 때문입니다.

SQL HAVING 문법

SELECT column_name, 집계 함수(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING 집계 함수(column_name) operator value

SQL HAVING 예제

다음 "Orders" 테이블을 가지고 있습니다:

O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter

지금, 주문 총액이 2000 미만인 고객을 찾고자 합니다.

다음과 같은 SQL 문장을 사용합니다:

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000

결과 집합은 유사합니다:

Customer SUM(OrderPrice)
Carter 1700

지금, "Bush" 또는 "Adams" 고객이 1500을 초과하는 주문 총액을 가진 고객을 찾고자 합니다.

SQL 문장에 일반 WHERE 절을 추가했습니다:

SELECT Customer,SUM(OrderPrice) FROM Orders
WHERE Customer='Bush' OR Customer='Adams'
GROUP BY Customer
HAVING SUM(OrderPrice)>1500

결과 집합:

Customer SUM(OrderPrice)
Bush 2000
Adams 2000