习题二:查询每个部门最高工资大于3000的部门编号和最高工资。
③ 分组前筛选和分组后筛选合用
习题:查询1981年入职的,不同部门间工资的平均值大于2000的部门编号和平均值。
5.分组查询(按函数分组)
习题:按员工姓名的长度分组,查询每一组的员工个数,筛选员工个数>3的有哪些?
select length(ename) len,count(*) counts from emp group by len having counts > 3;
结果如下:
6.分组查询(按多个字段分组)
习题:查询每个部门每个工种的员工的平均工资。
7.group by和order by,一对老搭档
习题一:查询每个部门的员工的平均工资,按照平均工资降序。
习题二:查询每个部门的员工的平均工资,按照平均工资升序。
8.分组查询的总结
1)分组函数做条件,肯定是放在having子句中。
2)能用分组前筛选的,就优先考虑使用分组前筛选。(where筛选)
3)group by子句支持单个字段分组,多个字段分组(多个字段之间用逗号隔开没有顺序要求),还支持函数分组(用的较少)。