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

SQL SUM() 函數詳細指南與實戰範例

     編輯:SQL 基礎

SQL SUM() 函數詳細指南與實戰範例


SUM() 函數簡介

SUM() 是 SQL 標準聚合函數之一,用於計算指定數值欄位的總和。它自動忽略 NULL 值,僅對非空數值進行加總運算,常用於銷售金額統計、庫存數量累計、訪問次數彙總等場景。

基本語法

SELECT SUM(column_name) FROM table_name;

亦可搭配 WHERE 子句先篩選資料,再計算符合條件的總和。


示範資料庫環境

沿用 RUNOOB 範例資料庫中的 access_log 表:

mysql> SELECT * FROM access_log;
+-----+---------+-------+------------+
| aid | site_id | count | date       |
+-----+---------+-------+------------+
| 1   | 1       | 45    | 2016-05-10 |
| 2   | 3       | 100   | 2016-05-13 |
| 3   | 1       | 230   | 2016-05-14 |
| 4   | 2       | 10    | 2016-05-14 |
| 5   | 5       | 205   | 2016-05-14 |
| 6   | 4       | 13    | 2016-05-15 |
| 7   | 3       | 220   | 2016-05-15 |
| 8   | 5       | 545   | 2016-05-16 |
| 9   | 3       | 201   | 2016-05-17 |
+-----+---------+-------+------------+

實戰範例:計算總訪問次數

範例:統計 access_log 表中 count 欄位總和

SELECT SUM(count) AS nums FROM access_log;

執行結果將回傳單一數值,代表所有記錄的訪問次數總和:



進階用法與注意事項

  • 搭配 GROUP BY:可依群組計算各群組小計(如 SELECT site_id, SUM(count) FROM access_log GROUP BY site_id)。
  • 搭配 DISTINCT:SUM(DISTINCT column_name) 可對去重後的唯一值求和,避免重複計算。
  • 資料型別:被加總欄位必須為數值型別(INT、DECIMAL、FLOAT 等),字串型別需先轉換。
  • NULL 處理:SUM 自動跳過 NULL,若全為 NULL 則回傳 NULL;可用 COALESCE(SUM(col),0) 確保回傳 0。
  • 效能考量:大表求和時,針對該欄位建立索引或使用資料分區可加速查詢。

常見應用場景

  • 電商系統:計算某期間總銷售額、總訂單量。
  • 流量分析:統計網站總 PV、UV。
  • 財務報表:彙總收入、支出、稅額等金額欄位。
  • 庫存管理:計算總庫存數量、總成本價值。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved