当前位置: 代码迷 >> Oracle开发 >> 子查询2(在HAVING子句中使用子查询)
  详细解决方案

子查询2(在HAVING子句中使用子查询)

热度:132   发布时间:2016-04-24 06:30:51.0
子查询二(在HAVING子句中使用子查询)

HAVING子句的主要功能是对分组后的数据进行过滤,如果子查询在HAVING中表示要进行分组过滤,一般返回单行单列的数据

示例一、查询部门编号,人数,平均工资,并且要求这些部门的平均工资高于公司的平均工资

 --查询部门编号,人数,平均工资,并且要求这些部门的平均工资高于公司的平均工资 SELECT e.deptno,COUNT(e.empno),ROUND(AVG(e.sal),2) FROM emp e GROUP BY e.deptno HAVING AVG(e.sal)>(        SELECT AVG(sal)        FROM emp ); 

示例二、查询出部门平均工资高的部门名称和平均工资

 --查询出部门平均工资高的部门名称和平均工资SELECT d.deptno,d.dname,AVG(e.sal) avgsalFROM emp e,dept dWHERE e.deptno=d.deptnoGROUP BY d.deptno,d.dnameHAVING AVG(e.sal)=(    SELECT MAX(AVG(sal))     FROM emp     GROUP BY deptno);

 

  相关解决方案