MySQL sum() 函數用於返回表達式的總和值。如果結果集沒有任何行,則返回 NULL。它是 MySQL 中的一種聚合函數。
用法
以下是 MySQL 中 sum() 函數的語法:
SELECT SUM(aggregate_expression)
FROM tables
[WHERE conditions];
參數說明
aggregate_expression:它指定我們要計算總和的列或表達式。
table_name:它指定我們要從中檢索記錄的表。 FROM 子句中必須至少列出一個表。
WHERE 條件:可選。它指定要選擇的記錄必須滿足的條件。
MySQL sum() 函數示例
考慮我們的數據庫有一個名為員工的表,其中包含以下數據。現在,我們將通過各種示例來理解這個函數:

1. 基本示例
執行以下查詢,計算表中所有員工的總工作小時數:
mysql> SELECT SUM(working_hours) AS "Total working hours" FROM employees;
輸出:
我們將得到如下結果:

2. 帶有 WHERE 子句的 MySQL sum() 函數
此示例用於根據 WHERE 子句中指定的條件返回結果。執行以下查詢以計算 working_hours >= 12 的員工的總工作時間。
mysql> SELECT SUM(working_hours) AS "Total working hours" FROM employees WHERE working_hours>=12;
輸出:
該語句將給出如下輸出:

3. MySQL sum() 函數與 GROUP BY 子句
我們還可以使用帶有 GROUP BY 子句的 SUM() 函數來返回每個組的總和值。例如,此語句使用帶有 GROUP BY 子句的 SUM() 函數計算每個員工的總工作時間,如以下查詢所示:
mysql> SELECT emp_id, emp_name, occupation, SUM(working_hours) AS "Total working hours" FROM employees GROUP BY occupation;
輸出:
在這裏,我們可以看到每個員工的總工作時間是通過根據他們的職業對他們進行分組來計算的。

4. 帶有 HAVING 子句的 MySQL sum() 函數
HAVING 子句用於在 MySQL 中使用 sum() 函數過濾組。執行以下語句,計算所有員工的工作時間,根據他們的職業對他們進行分組,並返回 Total_working_hours>24 的結果。
mysql> SELECT emp_id, emp_name, occupation,
SUM(working_hours) Total_working_hours
FROM employees
GROUP BY occupation
HAVING SUM(working_hours)>24;
輸出:

5. 帶有 DISTINCT 子句的 MySQL sum() 函數
MySQL 使用 DISTINCT 關鍵字從列名中刪除重複的行。該子句還可以與 sum() 函數一起使用,以返回表中存在的唯一記錄數的總和。
執行以下查詢,刪除員工表的 working_hours 列中的重複記錄,然後計算總和:
mysql> SELECT emp_name, occupation,
SUM(DISTINCT working_hours) Total_working_hours
FROM employees
GROUP BY occupation;
輸出:

相關用法
- MySQL second()用法及代碼示例
- MySQL str_to_date()用法及代碼示例
- MySQL sec_to_time()用法及代碼示例
- MySQL ROUND()用法及代碼示例
- MySQL REPEAT()用法及代碼示例
- MySQL POWER()用法及代碼示例
- MySQL LEAD() and LAG()用法及代碼示例
- MySQL IS_IPV4()用法及代碼示例
- MySQL WEEK()用法及代碼示例
- MySQL CHARACTER_LENGTH()用法及代碼示例
- MySQL CURTIME()用法及代碼示例
- MySQL weekofyear()用法及代碼示例
- MySQL CURRENT_TIME()用法及代碼示例
- MySQL Convert()用法及代碼示例
- MySQL FROM_BASE64()用法及代碼示例
- MySQL OCT()用法及代碼示例
- MySQL PI()用法及代碼示例
- MySQL CONCAT()用法及代碼示例
- MySQL period_add()用法及代碼示例
- MySQL STDDEV()用法及代碼示例
注:本文由純淨天空篩選整理自 MySQL sum() function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。