1. 输出每个部门编号,和该部门平均工资:
select deptno as "部门编号",avg(sal) as "平均工资"
from emp
group by deptno
错误写法:
select deptno as "部门编号",avg(sal) as "平均工资",ename
from emp
group by deptno
- ename 属于组内详细信息,并不是统计信息,逻辑错误。分组后,表达的整体信息。
- 分组后,只能出现分组后的整体信息,不能出现组内详细信息。
2. 先按照部门 deptno 分组,在按照职称 job 分组
select deptno,job
from emp
group by deptno,job
order by deptno
-group by a,b
:先按照 a 分组,如果 a 相同,再按照 b 分组。
select deptno,job,avg(sal) "平均工资",count(*) "部门人数"
from emp
group by deptno,job
order by deptno
-
avg()
、count()
: 最终统计的是最小分组(job)的信息。
错误写法:
select deptno,avg(sal) as "平均工资",ename
from emp
group by deptno
- ename 属于组内详细信息
select deptno,avg(sal) as "平均工资",ename
from emp
group by deptno
- ename 属于组内详细信息
select deptno,job,sal
from emp
group by deptno,job
- sal 属于组内详细信息
group by分组后,select 中只能出现分组后的整体信息,不能出现组内详细信息
网友评论