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

SQL 聚合函數完全手冊:MIN/MAX/SUM/AVG/COUNT 實戰指南

     編輯:關於SqlServer

五大核心聚合函數速查表

函數說明忽略 NULL
MIN(col)最小值是
MAX(col)最大值是
SUM(col)總和是
AVG(col)平均值是
COUNT(col)非 NULL 行數是
COUNT(*)總行數(含 NULL)否

無需 GROUP BY 的單值聚合

-- 全表平均薪資
SELECT AVG(salary) FROM employee;

-- Programmer 平均薪資
SELECT AVG(salary) FROM employee WHERE title = 'Programmer';

此類查詢直接返回單一標量值,無需分組。

COUNT(*) vs COUNT(col) 關鍵差異

SELECT COUNT(*) AS total_rows, 
       COUNT(bonus) AS bonus_not_null
FROM employee;
  • COUNT(*):統計所有行,包含全 NULL 行
  • COUNT(bonus):僅統計 bonus 非 NULL 的行

實戰練習題

  1. 查詢 items_ordered 表中最高價格:SELECT MAX(price) FROM items_ordered;
  2. 統計 items_ordered 表總行數:SELECT COUNT(*) FROM items_ordered;

進階提示

  • DISTINCT 聚合:COUNT(DISTINCT dept) 統計不同部門數
  • 條件聚合:SUM(CASE WHEN salary > 50000 THEN 1 ELSE 0 END) 統計高薪員工數
  • 溢出處理:SUM 可能溢出,大數據量考慮 SUM(CAST(col AS BIGINT))
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved