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

SQL Server 聚合函數完整參考與使用規則

     編輯:關於SqlServer

聚合函數清單

核心特性

  • 確定性:相同輸入必得相同輸出,可用於索引檢視表、計算欄位
  • 忽略 NULL:除 COUNT(*) / COUNT_BIG(*) 外,所有聚合函數自動忽略 NULL 值
  • 常搭配 GROUP BY:分組統計

允許使用位置

  1. SELECT 選取清單(含子查詢、外部查詢)
  2. COMPUTE / COMPUTE BY 子句
  3. HAVING 子句

不允許:WHERE、GROUP BY、ORDER BY (除非搭配子查詢)、JOIN ON 條件中直接使用。

常見用法範例

-- 基本統計
SELECT dept_id, COUNT(*) AS emp_cnt, AVG(salary) AS avg_sal, MAX(salary) AS max_sal
FROM employees
GROUP BY dept_id
HAVING COUNT(*) > 5

-- CHECKSUM_AGG 偵測資料變更
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM table_a
-- 比對兩時間點結果,若不同表示資料有變動

-- GROUPING 識別彙總列 (ROLLUP/CUBE)
SELECT dept_id, job_id, COUNT(*), GROUPING(dept_id), GROUPING(job_id)
FROM employees
GROUP BY ROLLUP (dept_id, job_id)

效能提示

  • 聚合前先篩選 (WHERE),減少參與運算行數
  • 適當索引支援 GROUP BY 欄位
  • 大量資料考慮分階段聚合或資料倉庫預聚合
  • COUNT(*) 比 COUNT(col) 快 (不需檢查 NULL)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
函數說明
AVG平均值(忽略 NULL)
MAX最大值
BINARY_CHECKSUM二進位雜湊總和
MIN最小值
CHECKSUM資料列雜湊值
SUM加總(忽略 NULL)
CHECKSUM_AGG群組雜湊總和
STDEV樣本標準差
COUNT行數統計(含 NULL)
STDEVP母體標準差
COUNT_BIG大數值行數統計 (BIGINT)
VAR樣本變異數
GROUPINGGROUP BY 分組識別
VARP母體變異數