在 SQL 查詢中,HAVING 語句用于過濾分組后的結果
- FROM:首先,數據庫引擎從 FROM 子句中指定的表或視圖中提取數據。
- WHERE:然后,數據庫引擎應用 WHERE 子句中的條件來過濾原始數據。只有滿足條件的行才會被包含在進一步的處理中。
- GROUP BY:接下來,數據庫引擎根據 GROUP BY 子句中指定的列對過濾后的數據進行分組。
- 聚合函數:在每個分組上應用聚合函數(如 COUNT、SUM、AVG 等),以計算每個分組的統計信息。
- HAVING:最后,數據庫引擎應用 HAVING 子句中的條件來過濾分組后的結果。只有滿足 HAVING 條件的分組才會被包含在查詢結果中。
- SELECT:數據庫引擎選擇 SELECT 子句中指定的列作為查詢結果的輸出。
- ORDER BY:最后,數據庫引擎根據 ORDER BY 子句中指定的列對查詢結果進行排序。
因此,HAVING 語句在分組和聚合操作之后執行,用于過濾分組后的結果。這與 WHERE 子句不同,WHERE 子句在分組和聚合操作之前執行,用于過濾原始數據。