在 mysql 中,having 子句用于篩選聚合函數的結果,僅影響聚合值,而非原始數據。它可以過濾聚合結果(按聚合值)、應用多個篩選條件或對聚合結果排序。
HAVING 子句在 MySQL 中的用法
HAVING 子句是在 MySQL 中用于篩選聚合結果(例如 SUM、COUNT、AVG 等)的行。它類似于 WHERE 子句,但它是在聚合函數執行后再應用的,因此只能引用聚合函數和分組列。
語法:
SELECT 聚合函數(列名) FROM 表名 GROUP BY 分組列 HAVING 篩選條件;
登錄后復制
用法:
HAVING 子句用于以下情況:
過濾聚合結果:根據聚合函數的值篩選行。例如,查找銷售額超過 1000 美元的訂單。
應用多個篩選條件:可以使用多個 HAVING 子句來應用復雜的篩選條件。例如,查找銷售額超過 1000 美元且客戶類型為“批發”的訂單。
對聚合結果進行排序:可以使用 HAVING 子句對聚合結果進行排序。例如,按銷售額從高到低排序訂單。
示例:
查找銷售額超過 1000 美元的訂單:
SELECT SUM(銷售額) FROM 訂單表 GROUP BY 訂單號 HAVING SUM(銷售額) > 1000;
登錄后復制
查找銷售額超過 1000 美元且客戶類型為“批發”的訂單:
SELECT SUM(銷售額) FROM 訂單表 GROUP BY 訂單號 HAVING SUM(銷售額) > 1000 AND 客戶類型 = '批發';
登錄后復制
按銷售額從高到低排序訂單:
SELECT SUM(銷售額) FROM 訂單表 GROUP BY 訂單號 HAVING SUM(銷售額) > 0 ORDER BY SUM(銷售額) DESC;
登錄后復制