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

版权声明:本文为小匠心原创文章,转载请注明出处。 https://blog.csdn.net/qq_36957885/article/details/89294223

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.分组统计

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

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

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

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

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

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

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

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

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

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

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

猜你喜欢

转载自blog.csdn.net/qq_36957885/article/details/89294223