SQL 求和

SQL 求和,对所有值求和,例如,计算全体员工的工资总和。

SQL 求和 问题描述

对所有值求和,例如,计算全体员工的工资总和。

SQL 求和 解决方案

针对整个表求和时,只要对感兴趣的列执行 SUM 函数即可,不需要使用 GROUP BY 子句。

1 select sum(sal)
2   from emp
 
  SUM(SAL)
----------
     29025

如果把数据分为多组,就需要使用 SUM 函数和 GROUP BY 子句。下面的例子按照部门计算员工的工资总额。

1 select deptno, sum(sal) as total_for_dept
2   from emp
3 group by deptno
 
    DEPTNO TOTAL_FOR_DEPT
---------- --------------
        10           8750
        20          10875
        30           9400

SQL 求和 扩展知识

当计算各部门的工资总额时,其实是在对数据进行分组。对于每个部门而言,所有员工的工资会被相加,并得出总和。本例是一个用 SQL 做聚合运算的例子,因为重点关注的不是某个员工的工资这样的详细信息,而是各个部门的工资总额。注意,SUM 函数会忽略 Null,但是我们可能会遇到 Null 分组,下面的例子会展示这一点。DEPTNO10 的员工都没有业务提成,因而对于 DEPTNO 等于 10 的分组而言,计算 COMM 的总和会返回 Null

select deptno, comm
  from emp
 where deptno in (10,30)
 order by 1
 
    DEPTNO       COMM
---------- ----------
        10
        10
        10
        30        300
        30        500
        30
        30          0
        30       1300
        30
 
select sum(comm)
  from emp
 
 SUM(COMM)
----------
      2100
 
select deptno, sum(comm)
  from emp
 where deptno in (10,30)
 group by deptno
 
    DEPTNO  SUM(COMM)
---------- ----------
        10
        30       2100

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程