Oracle分组函数及分组统计条件限定查询

1.统计记录数count()

select count(字段名) from 表名;

2.最小值查询min()

范例:查询工资最低的员工

select min(sal) from emp;

3.最大值查询max()

范例:查询工资最高的员工

select max(sal) from emp;

4.平均值函数

求平均工资:

select avg(sal) avgsal from emp;

5.求和

select sum(sal) suxx from emp where xx = 20;

6.分组统计

Oracle分组函数及分组统计条件限定查询_第1张图片

 

范例:查出每个部门的平均工资:

select avg(empno) avgsal from emp group by deptno;

Oracle分组函数及分组统计条件限定查询_第2张图片

注意:d.dname该字段并没有对它进行group by,所以会报错,要想展示出来就得更细的分组

Oracle分组函数及分组统计条件限定查询_第3张图片

范例:查询出每个部门从事相同工作的人

分析:首先分出部门,再从部门上分出相同工作的人,所以得分两个组

Oracle分组函数及分组统计条件限定查询_第4张图片

范例:查询出部门函数大于五人的部门

分析:需要给count(ename)加条件,此时再本查询中不能使用where,可以使用having 在group by后面作用在分组函数上

Oracle分组函数及分组统计条件限定查询_第5张图片

范例:平均工资大于两千的部门

select avg(sal) deptno from emp group by deptno having avg(sal) > 2000

Oracle分组函数及分组统计条件限定查询_第6张图片

范例:显示非销售人员工作名称以及从事同一工作的员工的月工资的总和,并且要满足从事同一工作月工资总和大于5000,结果按月工资总和的升序排列。

Oracle分组函数及分组统计条件限定查询_第7张图片

 

在分组统计的时候如果处理分组函数以外,结果列必须是group by后面分组的列(后面的列前面才能有,后面没有的前面决不能有)

 

 

你可能感兴趣的:(ORACLE)