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) avgsal FROM emp e,dept d WHERE e.deptno=d.deptno GROUP BY d.deptno,d.dname HAVING AVG(e.sal)=( SELECT MAX(AVG(sal)) FROM emp GROUP BY deptno );