having 子句用于篩選分組后的數據,語法為:select aggregate_functions(column_name) from table_name group by column_name having condition;。它可以篩選聚合函數、分組列、常量或運算符。例如,以下查詢篩選出訂單中至少包含 3 件商品且總金額大于 100 美元的組:select count(distinct order_id) as order_count from orders group by cus
SQL 中 HAVING 子句
HAVING 子句的作用:
HAVING 子句用于對分組后的數據進行篩選。它與 WHERE 子句類似,但用于篩選聚合結果,而不是篩選原始數據。
HAVING 子句的語法:
<code>SELECT aggregate_functions(column_name) FROM table_name GROUP BY column_name HAVING condition;</code>
登錄后復制
條件:
HAVING 子句中的條件可以包括以下內容:
聚合函數(例如 SUM、COUNT、AVG)
分組列
常量
運算符(例如 >、
HAVING 子句的用法:
HAVING 子句可以用于多種場景,例如:
從分組結果中篩選出滿足特定條件的組
查找具有特定聚合值(例如最大值、最小值)的組
根據聚合結果計算百分比或平均值
示例:
查詢滿足以下條件的訂單:
總金額大于 100 美元
訂單中至少包含 3 件商品
<code>SELECT COUNT(DISTINCT order_id) AS order_count FROM orders GROUP BY customer_id HAVING SUM(total_amount) > 100 AND COUNT(DISTINCT product_id) >= 3;</code>
登錄后復制
注意:
HAVING 子句只能在 GROUP BY 子句之后使用。
HAVING 子句只能篩選聚合結果,不能篩選原始數據。






