sql中根据表中一个字段分组如何分别统计每个分组的记录数?
分组统计可以参考以下操作:
当数组重复的时候分组才有意义,因为一个人也可以分为一组,只是没有意义而已,分组采用GROUP BY语句完成,语法如下:
例子:
按照部门编号分组,求出每个部门的人数,平均工资
按照职位分组,求出每个职位的最高和最低工资:
一旦分组之后,实际上对于语法上就会出现新的限制:
分组函数可在没有分组的时候单独使用,却不能出现其他的查询字段:
ename就是其它查询字段。在select子句之后,只能出现分组的字段和统计函数,其它的字段不能出现
分组函数允许嵌套,但是嵌套之后的分组函数的查询之中不能再出现任何其它字段
例子:按照职位分组,统计平均工资最高的工资
当添加其它字段‘job’之后出现错误
例子:查询出每个部门的名称、位置、部门的人数、平均工资
确定所需的数据表:
emp表:部门的人数,平均工资
dept表:部门的名称,位置
确定已知的关联字段:
emp.deptno = dept.deptno
发现dname存在重复,可以进行分组去除重复,按照之前对分组的理解,只要数据重复那么就有可能进行分组的查询操作,但是此时与之前的分组操作 不太一样,之前的分组是针对一张实体表进行分组的(emp,dept都属于实体表),但是对于以上的数据是通过查询结果显示的,所以是一张临时的虚拟表,但是不管是否是实体表还是虚拟表,只要是有重复,那么就直接进行分组