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