【简介】感谢网友“网络”参与投稿,这里小编给大家分享一些,方便大家学习。
在本教程中,我们将演示如何使用SQL SUM函数,此函数计算所有值或不同值的总和。
1. SQL SUM函数简介
SQL SUM函数是一个聚合函数,它返回所有或不同值的总和。需要注意的是,只能将SUM函数应用于数字列。
以下说明了SUM函数的语法。
SUM([ALL|DISTINCT] expression)
ALL运算符用于将聚合应用于所有值。 SUM函数默认使用ALL运算符。
例如,如果有一组集合值:(1,2,3,3,NULL)。 使用SUM函数将返回9,请注意,SUM函数忽略NULL值。
要计算唯一值的总和,可以使用运算符,例如,集合(1,2,3,3,NULL)的SUM()为6。
2. SQL SUM函数示例
我们将使用下面的表进行演示。
mysql> DESC employees;
+---------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+----------------+
| employee_id | int(11) | NO | PRI | NULL | auto_increment |
| first_name | varchar(20) | YES | | NULL | |
| last_name | varchar(25) | NO | | NULL | |
| email | varchar(100) | NO | | NULL | |
| phone_number | varchar(20) | YES | | NULL | |
| hire_date | date | NO | | NULL | |
| job_id | int(11) | NO | MUL | NULL | |
| salary | decimal(8,2) | NO | | NULL | |
| manager_id | int(11) | YES | MUL | NULL | |
| department_id | int(11) | YES | MUL | NULL | |
+---------------+--------------+------+-----+---------+----------------+
10 rows in set
要获得所有员工的工资总和,我们将SUM函数应用于列,如下面的查询:
SELECT
SUM(salary)
FROM
employees;
要计算在部门ID为 5 中工作的员工的工资总和,在上面的查询中添加一个子句,如下所示:
SELECT
SUM(salary)
FROM
employees
WHERE
department_id = 5;
+-------------+
| SUM(salary) |
+-------------+
| 41200.00 |
+-------------+
1 row in set
2.1. SQL SUM带有 BY子句的示例
我们经常将SUM函数与 BY子句结合使用来计算分组的总和。
例如,要计算每个部门的员工工资总和,我们将SUM函数应用于列,并按列对行进行分组,如下所示:
SELECT
department_id,
SUM(salary)
FROM
employees
GROUP BY
department_id;
执行上面查询语句,得到以下结果:
2.2. SQL SUM带有 BY子句的示例
假设希望将部门工资的总和按降序排序,我们在 BY子句使用SUM函数,如下所示:
例如,如果要获取工资总和大于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;
执行上面查询语句,得到以下结果:
在本教程中,您学习了如何使用SUM函数计算集合中的值的总和。