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;

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

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;

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

SQLSUM函数的使用相关推荐

  1. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

    数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...

  2. Mysql函数group_concat、find_in_set 多值分隔字符字段进行数据库字段值翻译

    Mysql函数group_concat.find_in_set进行数据库字段值翻译 场景 配方表:记录包含的原料 sources表示原料,字段值之间用逗号分隔 原料表:对应原料id和原料名称 现需要查 ...

  3. C++ 笔记(34)— C++ exit 函数

    当遇到 main 函数中的 return 语句时,C++ 程序将停止执行.但其他函数结束时,程序并不会停止.程序的控制将返回到函数调用之后的位置.然而,有时候会出现一些非常少见的情况,使得程序有必要在 ...

  4. C++ 笔记(30)— 友元函数与友元类

    我们知道类的私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行.这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书写的麻烦. ...

  5. 浅显易懂 Makefile 入门 (07)— 其它函数(foreach 、if、call、origin )

    1. foreach 函数 foreach 函数定义如下: $(foreach <var>,<list>,<text>) 函数的功能是:把参数 <list&g ...

  6. 浅显易懂 Makefile 入门 (06)— 文件名操作函数(dir、notdir、suffix、basename、addsuffix、addperfix、join、wildcard)

    编写 Makefile 的时候,很多情况下需要对文件名进行操作.例如获取文件的路径,去除文件的路径,取出文件前缀或后缀等等. 注意:下面的每个函数的参数字符串都会被当作或是一个系列的文件名来看待. 1 ...

  7. Go 学习笔记(65)— Go 中函数参数是传值还是传引用

    Go 语言中,函数参数传递采用是值传递的方式.所谓"值传递",就是将实际参数在内存中的表示逐位拷贝到形式参数中.对于像整型.数组.结构体这类类型,它们的内存表示就是它们自身的数据内 ...

  8. Go 学习笔记(61)— Go 高阶函数、函数作为一等公民(函数作为输入参数、返回值、变量)的写法

    函数在 Go 语言中属于"一等公民(First-Class Citizen)"拥有"一等公民"待遇的语法元素可以如下使用 可以存储在变量中: 可以作为参数传递给 ...

  9. C++ 笔记(26)— 主函数 main(int argc, char *argv[]) 参数说明

    带形参的 main 函数,如 int main( int argc, char* argv[], char **env ) 是 UNIX .Linux 以及 Mac OS 操作系统中 C/C++ 的 ...

最新文章

  1. KLayout 软件使用崩溃
  2. iBeacon 初探
  3. 《动手学深度学习》 第二天 (自动求梯度)
  4. AI落地谁最强?AI Top 30+案例评选等你来秀
  5. 最大功率点跟踪_华北电力大学颜湘武团队特稿:基于变功率点跟踪和超级电容器储能协调控制的双馈风电机组一次调频策略...
  6. java递减_关于Java中递增和递减运算符的有趣事实
  7. 计算一条3d空间直线和一个3d空间平面的交点
  8. 2015年最新Scala语言视频教程
  9. 自动发消息到微信提醒
  10. Uniapp 微信小程序登陆页面
  11. LaTeX下载安装与使用
  12. java播放MP3/APE音乐文件
  13. Word怎么转PDF?分享三种非常简单的方法
  14. 计算机word打开,电脑word打不开怎么办
  15. Theory: If statement(理论:如果语句)
  16. “谈了四年的男友寒心了,我已是接近30的老女人”
  17. AutoCAD无法显示虚线的解决方法
  18. 【前端微服务化】使用飞冰搭建前端微服务化框架
  19. 多态综合案例——电脑的USB 接口
  20. Excel制作水滴图和对称条形图

热门文章

  1. android中获取版本号,Android 开发中如何获取版本号
  2. 【Docker】Docker网络
  3. Lead as you have no power(不依赖权力的领导方式)
  4. API安全的应用和分析
  5. centos开ftp账号
  6. EOS学习之路001-开发环境搭建
  7. python assert函数解析(最清晰的解释)
  8. 《种树郭橐驼传》教学案例
  9. C++使用Markup解析xml文件
  10. Hibernate Validator