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 |