SQLSUM函数的使用

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;

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

 

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;

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

 

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值