having 子句用于篩選分組后的結果集,應用于匯總后的數據而非原始數據。它可以丟棄不滿足條件的行、細化結果集和提取特定信息。例如,此查詢找出銷售額大于 100 美元的訂單:select customer_id, sum(amount) as total_amount from orders group by customer_id having total_amount > 100;
在 MySQL 中,HAVING 的含義
HAVING 子句用于對 GROUP BY 分組后的結果集進行進一步的過濾。它類似于 WHERE 子句,但是應用于匯總后的數據,而不是原始數據。
使用場景
HAVING 子句通常用于從分組數據中篩選出滿足特定條件的行。例如:
找出銷售額大于 100 美元的訂單。
找出每個客戶購買的商品數量大于 5 個的訂單。
語法
HAVING 子句的語法如下:
<code>HAVING </code>
登錄后復制
其中是任何有效的 SQL 表達式,可以包含聚合函數(如 SUM、COUNT 等)和比較運算符(如 =、>、
作用
HAVING 子句通過篩選分組后的數據,可以提供以下功能:
丟棄不滿足條件的行
進一步細化結果集
提取特定信息
示例
以下示例查詢找出銷售額大于 100 美元的訂單:
<code>SELECT customer_id, SUM(amount) AS total_amount FROM orders GROUP BY customer_id HAVING total_amount > 100;</code>
登錄后復制
該查詢會返回以下結果:
customer_id | total_amount |
---|---|
1 | 120.50 |
2 | 150.75 |
3 | 115.20 |