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 函数计算集合中值的总和。

本教程是否有帮助?