SQL SUM

摘要: 在本教學中,我們將向您介紹 SQL SUM 函數,該函數計算所有或不同值的總和。

SQL SUM 函數簡介

SQL SUM 函數是一個聚合函數,它返回所有或不同值的總和。我們只能將 SUM 函數應用於數值欄位。

以下說明 SUM 函數的語法。

SUM([ALL|DISTINCT] expression)Code language: SQL (Structured Query Language) (sql)

ALL 運算子允許您將聚合應用於所有值。 SUM 函數預設使用 ALL 運算子。

例如,如果您有一組 (1,2,3,3,NULL)。 SUM 函數返回 9。請注意,SUM 函數會忽略 NULL 值。

要計算唯一值的總和,您可以使用 DISTINCT 運算子,例如,集合 (1,2,3,3,NULL) 的 SUM(DISTINCT) 為 6。

SQL SUM 函數範例

我們將使用下面的 employees 表格進行示範。

employees_table

要取得所有員工的薪資總和,我們將 SUM 函數應用於 salary 欄位,如下列查詢所示

SELECT 
    SUM(salary)
FROM
    employees;Code language: SQL (Structured Query Language) (sql)

試試看

要計算部門 ID 為 5 的員工的薪資總和,我們在上述查詢中新增一個 WHERE 子句,如下所示

SELECT 
    SUM(salary)
FROM
    employees
WHERE
    department_id = 5;Code language: SQL (Structured Query Language) (sql)

試試看

SQL SUM 與 GROUP BY 子句範例

我們經常將 SUM 函數與 GROUP BY 子句結合使用,來計算群組的總和。

例如,要計算每個部門員工的薪資總和,我們將 SUM 函數應用於 salary 欄位,並按 department_id 欄位對行進行分組,如下列查詢所示

SELECT
	department_id,
	SUM(salary)
FROM
	employees
GROUP BY
	department_id;Code language: SQL (Structured Query Language) (sql)

試試看

為了在結果集中包含部門名稱,我們將 employees 表格與 departments 表格聯結,如下所示

SELECT
	e.department_id,
	department_name,
	SUM(salary)
FROM
	employees e
INNER JOIN departments d ON d.department_id = e.department_id
GROUP BY
	e.department_id;Code language: SQL (Structured Query Language) (sql)

試試看

SQL SUM 與 ORDER BY 子句範例

假設我們希望部門的薪資總和按降序排序,在這種情況下,我們在 ORDER BY 子句中使用 SUM 函數,如下所示

SELECT
	e.department_id,
	department_name,
	SUM(salary)
FROM
	employees e
INNER JOIN departments d ON d.department_id = e.department_id
GROUP BY
	e.department_id
ORDER BY
	SUM(salary) DESC;Code language: SQL (Structured Query Language) (sql)

試試看

SQL SUM 函數與 HAVING 子句範例

要根據條件篩選群組,您可以使用 HAVING 子句。 如果您想根據 SUM 函數的結果篩選群組,您必須將 SUM 函數放在 GROUP BY 子句中。

例如,如果您想取得部門及其薪資總和超過 3000 的部門,您可以使用以下語句

SELECT
	e.department_id,
	department_name,
	SUM(salary)
FROM
	employees e
INNER JOIN departments d ON d.department_id = e.department_id
GROUP BY
	e.department_id
HAVING
	SUM(salary) > 30000
ORDER BY
	SUM(salary) DESC;Code language: SQL (Structured Query Language) (sql)

試試看

在本教學中,您已學習如何使用 SUM 函數來計算集合中值的總和。

這個教學對您有幫助嗎?