前面我们介绍了很多oracle中单行函数,在oracle中还存在另一类函数,那就是聚合函数,oracle中的聚合函数非常有用,主要是用来做些统计、平均之类的工作,你必须牢记。
先简单介绍一下几个常用的oracle中的聚合函数。
Oracle中聚合函数名称 |
函数的作用 |
Count |
用来求有效数据的数量 |
Max |
用来求给定数据中最大的那一个数据 |
Min |
用来求给定数据中最小的那一个数据 |
Avg |
用来求给定数据的平均值 |
Sum |
用来求给定数据的总和 |
Variance |
用来求给定数据的标准差 |
Stddev |
用来求给定数据的方差 |
先面是一些例子和注意事项。
1 .对于聚合函数,如果给定的值中存在空值的话,oracle将会直接忽略。
例如,对于scott的schema中有表emp;
Select count(*) from emp;
将会得到结果:
COUNT(*)
———-
14
但是我们注意到在Mgr列中有一列是空值,于是
Select count(mgr) from emp;
将会得到如下结果。
select COUNT(MGR)
———-
13
也就是说,oracle忽略了其中的空值。
当然对sum,max,min,avg等其他聚合函数都是如此。
例如select sum(comm) from emp;将会自动忽略掉一部分空值的数据。
2.对于聚合函数中可以使用distinct关键字来压缩重复值。
比如我们想统计总共有多少个部门的话
我们如果写
Select count(deptno) from emp;
将会得到错误的结果。因为实际上有很多重复的值也被计算在内。为了找到正确的答案,你应该这样写。
Select count(distinct deptno) from emp;
3.单独使用oracle中的聚合函数 可能用途还是有限,更经常使用的是聚合函数和group by 关键字结合起来使用。这一点我们稍后介绍。