首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL HAVING 子句詳解:分組後篩選的正確用法與範例

     編輯:關於SqlServer

基本概念

HAVING 與 GROUP BY 搭配使用,用於分組後篩選彙總結果。不同於 WHERE(分組前篩選列),HAVING 作用於彙總函數結果。

語法結構

SELECT column1, column2, ..., aggregate_function(expression)
FROM tables
WHERE predicates
GROUP BY column1, column2, ...
HAVING condition1 ... condition_n;

常用彙總函數

  • SUM、COUNT、MIN、MAX、AVG

範例:使用 SUM 函數

查詢各部門總銷售額超過 100 萬的部門:

SELECT department, SUM(sales) AS total_sales
FROM order_details
GROUP BY department
HAVING SUM(sales) > 1000000;

WHERE vs HAVING 關鍵差異

特性WHEREHAVING
執行時機分組前分組後
可用彙總函數否是
作用對象單列資料群組彙總結果

實務建議

  • 先用 WHERE 過濾基礎資料,減少分組運算量
  • HAVING 條件中必須包含彙總函數或 GROUP BY 欄位
  • 可搭配多個條件:HAVING COUNT(*) > 10 AND AVG(score) >= 80
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved