聚合函数 Aggregate Function

聚合函数是用来统计每个分组的统计信息,它们要跟 group by 一起使用,用来将每个分组所有数据 聚合 成一条统计数据。

包括 max/min/count/avg/sum 等。

-- 按照部门进行分组统计的语句
select deptno,             -- 因为按照 deptno 分组,select 中只能有 deptno 字段
       count(*),           -- 每个分组多少条数据
       max(sal),           -- 每个分组工资的最大值
       min(sal),           -- 每个分组工资的最小值
       avg(sal),           -- 每个分组工资的均值
       sum(nvl(comm, 0))   -- 每个分组奖金总和,因为奖金可能为 null,所以需要使用 nvl 进行去空
  from emp
 group by deptno;          -- 分组依据


-- 可以用 having 对结果进行过滤
-- 整个 select 语句执行顺序大致是: where -> group by -> having -> order by
select deptno, count(*), max(sal), min(sal), avg(sal), sum(comm)
  from emp
 group by deptno
 having avg(sal) > 2000;

-- having 等价于嵌套的 where,即上面语句跟下面这条等效。
select * from (
  select deptno, count(*), max(sal), min(sal), avg(sal) asal, sum(comm)
    from emp
   group by deptno
 ) where asal > 2000;

你可能感兴趣的:(聚合函数 Aggregate Function)