一、聚合函数(多行函数,分组函数)
需求:查看员工表中最高月薪,查询每个部门的平均工资,索要的数据在表中无法直接体现,需要经过计算,需要统计多条记录,显示成一条记录 --所有的聚合函数都忽略null
(1)max()、min():查看一组数据中的最大值,最小值
--练习:查看员工表中的最高月薪和最低月薪
select max(sal),min(sal) from emp;
--练习:查看员工表的最高,最低奖金
select max((sal+nvl(comm,0))*12),min(comm) from emp;
(2)sum():求每一组数据中的和
--练习:计算一下员工的总月薪,总奖金
select sum(sal),sum(comm) from emp;
--练习:计算一个员工表中的平均月薪
select sum(sal)/14 from emp;
select avg(sal) from emp;
--练习:查看员工表中的平均奖金
select sum(comm)/16 from emp;
select avg(comm) from emp;
(3)avg()函数通常都要进行空值处理也就是avg(nvl(comm,0))
--练习:统计员工的年薪的平均值
select avg((sal+nvl(comm,0))*12) from emp;
(4) count():统计每一组数据的记录数
--练习:统计员工表中月薪的个数
select count(sal),count(comm) from emp;
--练习:统计员工表中的人数
select count(ename) from emp;
--通配符:‘*’可以代替任意字段,可以统计总记录数
select count(*) from emp;