SQL Sum()函数

在本教程中,我们将演示如何使用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值。

要计算唯一值的总和,可以使用DISTINCT运算符,例如,集合(1,2,3,3,NULL)SUM(DISTINCT)6

2. SQL SUM函数示例

我们将使用下面的employees表进行演示。

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函数应用于salary列,如下面的查询:

SELECT 
    SUM(salary)
FROM
    employees;

要计算在部门ID为 5 中工作的员工的工资总和,在上面的查询中添加一个WHERE子句,如下所示:

SELECT 
    SUM(salary)
FROM
    employees
WHERE
    department_id = 5;

+-------------+
| SUM(salary) |
+-------------+
| 41200.00    |
+-------------+
1 row in set

2.1. SQL SUM带有GROUP BY子句的示例

我们经常将SUM函数与GROUP BY子句结合使用来计算分组的总和。

例如,要计算每个部门的员工工资总和,我们将SUM函数应用于salary列,并按department_id列对行进行分组,如下所示:

SELECT
    department_id,
    SUM(salary)
FROM
    employees
GROUP BY
    department_id;

执行上面查询语句,得到以下结果:

《SQL Sum()函数》

2.2. SQL SUM带有ORDER BY子句的示例

假设希望将部门工资的总和按降序排序,我们在ORDER 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;

执行上面查询语句,得到以下结果:

《SQL Sum()函数》

在本教程中,您学习了如何使用SUM函数计算集合中的值的总和。

        原文作者:SQL教程
        原文地址: https://www.yiibai.com/sql/sql-sum.html
        本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
    点赞