HAVING 子句 (SQL HAVING Clause)

HAVING 子句是用來取代 WHERE 搭配聚合函數 (Aggregate Function) 進行條件查詢,因為 WHERE 不能與聚合函數一起使用。
聚合函數指的也就是AVG()、COUNT()、MAX()、MIN()、SUM()等這些內建函數。

HAVING 語法 (SQL HAVING Syntax)

SELECT column_name(s), aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name1, column_name2···
HAVING aggregate_function(column_name) operator value;

HAVING 子句查詢實例 (Example)

假設我們想從下面的「orders」資料表中查詢訂單金額總合小於1000的顧客:
O_Id Price Customer
1 1000 張一
2 2000 王二
3 500 李三
4 1300 張一
5 1800 王二

我們可以下這個 SELECT 查詢敘述句:
SELECT Customer, SUM(Price) FROM orders
GROUP BY Customer
HAVING SUM(Price)<1000;

返回的結果如下:
Customer SUM(Price)
李三 500