oracle分组查询

分组函数
在分组函数中,如果有一个查找项分组,其他项必须也分组,比如下面的语句会报错,因为sal分组了,而ename没有分组:

这里写图片描述

1.显示工资最高的员工:
这里写图片描述

2.显示所有员工的平均工资:
2.1使用系统函数:

这里写图片描述
2.2自定义计算:

这里写图片描述

3.显示工资高于平均工资的员工信息:

oracle分组查询_第1张图片

对查询结果进行分组统计:

4.查询每个部门的最高工资和平均工资:

oracle分组查询_第2张图片

5.显示每个部门的每种岗位的平均工资与最高工资:

oracle分组查询_第3张图片

6.显示平均工资低于2000的部门号和它的平均工资:

这里写图片描述

对数据分组的总结

1 分组函数只能出现在选择列表、having、order by子句中(不能出现在where中)
2 如果在select语句中同时包含有group by, having, order by 那么它们的顺序是group by, having, order by
3 在选择列中如果有列、表达式和分组函数,那么这些列和表达式必须有一个出现在group by 子句中,否则就会出错。
如SELECT deptno, AVG(sal), MAX(sal) FROM emp GROUP by deptno HAVING AVG(sal) < 2000;
这里deptno就一定要出现在group by 中

你可能感兴趣的:(oracle,分组查询,数据查询)