Oracle聚合函数
count
取得记录数
sum
求和
Avg
取平均
Max
取最大的数
min
取最小的数
count
● 取得所有的员工数
select count(*) from emp;
Count(*)表示取得所有记录,忽略null,为null值也会取得。
当一行数据所有字段全部为空的场合,count方法是否有效 !
count方法有效!
● 取得津贴不为null员工数
select count(comm) from emp;
采用count(字段名称),不会取得为null的纪录。
● 取得工作岗位的个数
select count(distinct job) from emp;
Distinct可以去除重复的纪录。
sum
Sum可以取得某一个列的和,如果是null会略。
● 取得薪水的合计
select sum(sal) from emp;
● 取得薪水的合计(sal+comm)
select sum(sal+comm) from emp;
从以上结果来看,不正确,原因在于comm字段有null值,所以无法计算,sum会忽略掉,正确的做法是将comm字段转换成0。
select sum(sal+nvl(comm, 0)) from emp;
avg
取得某一列的平均值。
● 取得平均薪水
select avg(sal) from emp;
max
取得某个一列的最大值。
● 取得最高薪水
select max(sal) from emp;
● 取得最晚入职得员工
select max(to_char(hiredate, 'yyyy-mm-dd')) from emp;
min
取得某个一列的最小值。
● 取得最低薪水
select min(sal) from emp;
● 取得最早入职得员工
select min(hiredate) from emp;
组合聚合函数
可以将这些聚合函数都放到select中一起使用。
select count(*), sum(sal), avg(sal), max(sal), min(sal) from emp;