在 SQL 中,HAVING 子句通常與 GROUP BY 子句一起使用,用于過濾滿足特定條件的分組
SELECT column_name1, aggregate_function(column_name2)
FROM table_name
GROUP BY column_name1
HAVING aggregate_function(column_name2) IN (
SELECT aggregate_function(column_name2)
FROM table_name
WHERE condition
);
這里是一個具體的例子:
假設我們有一個名為 “orders” 的表格,其中包含以下列:customer_id(顧客ID)、order_date(訂單日期)和amount(金額)。
我們希望找到平均消費超過 100 的顧客。首先,我們需要計算每個顧客的平均消費:
SELECT customer_id, AVG(amount) as average_amount
FROM orders
GROUP BY customer_id;
然后,我們可以使用 HAVING 子句和子查詢來找到平均消費超過 100 的顧客:
SELECT customer_id, AVG(amount) as average_amount
FROM orders
GROUP BY customer_id
HAVING AVG(amount) > (
SELECT AVG(amount)
FROM orders
WHERE amount > 100
);
這將返回所有平均消費超過 100 的顧客及其平均消費。