group by分组查询
示例:要求查询出每个部门的编号,人数,以及最高和最低工资
select deptno, count(empno), max(sal), min(sal) from emp group by deptno;
限制1:在没有使用group by子句,select中不能够使用统计函数
正确代码 |
错误代码 |
select deptno,count(empno), max(sal),min(sal) from emp |
select deptno,count(empno), max(sal),min(sal) |
限制2:在使用group by子句,select只允许使用分组字段和统计函数,其他不允许出现
正确代码 |
错误代码 |
select deptno,count(empno) from emp group by deptno |
select deptno,ename,count(empno) from emp group by deptno |
限制3:统计函数允许嵌套,但是嵌套后的统计查询中,select子句不允许出现任何字段,包含分组字段,只能出现统计函数
正确代码 |
错误代码 |
select max(avg(sal)) from emp group by deptno |
select deptno,max(avg(sal)) from emp group by deptno |