首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL SUM() 聚合函數完全指南:基礎用法與分組統計實例

     編輯:MySQL 資料庫相關知識

SUM() 是 MySQL 最常用的聚合函數,用於計算指定列的數值總和。本文通過 employee_tbl 範例數據,演示基本求和、GROUP BY 分組統計等核心用法,助你快速掌握數據聚合技巧。

一、範例數據準備

idnamework_datedaily_typing_pages
1John2007-01-24250
2Ram2007-05-27220
3Jack2007-05-06170
3Jack2007-04-06100
4Jill2007-04-06220
5Zara2007-06-06300
5Zara2007-02-06350

二、基本用法:全表求和

SELECT SUM(daily_typing_pages) FROM employee_tbl;

結果:1610(所有員工打字頁數總和)。
注意:SUM() 自動忽略 NULL 值;若結果集為空,返回 NULL 而非 0。

三、進階用法:GROUP BY 分組統計

SELECT name, SUM(daily_typing_pages) 
FROM employee_tbl 
GROUP BY name;

結果:

nameSUM(daily_typing_pages)
Jack270
Jill220
John250
Ram220
Zara650

每位員工的總打字量一目瞭然。GROUP BY 將相同 name 的行聚合為一組,再對組內數值求和。

四、常見陷阱與最佳實踐

  • 搭配 COALESCE:SELECT COALESCE(SUM(col), 0) ... 避免空結果集返回 NULL 導致應用層報錯。
  • 數據類型溢出:大數據量求和可能超出 INT 範圍,建議列類型用 BIGINT 或轉換 CAST(col AS DECIMAL(20,2))。
  • WHERE vs HAVING:分組前過濾用 WHERE,分組後過濾聚合結果用 HAVING SUM(...) > 1000。
  • 索引優化:高頻聚合查詢可建立覆蓋索引 (group_col, sum_col) 實現 Index Only Scan。

五、總結

SUM() 配合 GROUP BY 是業務報表、數據分析的基石。掌握其空值處理、類型溢出防範、索引優化要點,能讓聚合查詢既準確又高效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved