分组查询主要是用来统计的,一般都是按照某一个列进行统计分组
统计类型:求平均,求最大,求最小,求和等等
分组查询需要结合分组函数一起完成,常用的分组函数:
COUNT(参数):统计查询语句返回的行数
MAX(参数):求最大
MIN(参数):求最小
AVG(参数):求平均
SUM(参数):求和
参数:一般都是列名,但是count() 的参数还可以是 * 和 1
注意:
当参数是具体的列名的时候,函数会自动过滤掉列中为空值的情况,特别是 COUNT(), 参数是列名,就只统计列名非空的情况;如果是count(*),COUNT(1)既是是空行,也会被 统计进去。
语法:
关键字:
按照 *** 分组: GROUP BY 列名,列名2,….
分组之后进行数据过滤: HAVING
SELECT 分组函数,被分组列名 FROM 表名(1个或者多个)[WHERE 连接条件] GROUP BY 1个或者多个列名 [HAVING 过滤条件]
例如:
统计每个部门的员工人数,及平均薪水;(按照部门编号进行分组统计,每个部门的人 数和平均薪水)注意:按照 进行分组 : GROUP BY
SELECT COUNT(*),AVG(sal),deptno FROM emp GROUP BY deptno;
按照部门编号和岗位进行分组统计,统计的是每个部门每个岗位的人数和平均薪水,仅保留人数超过2个人的部门和岗位信息
SELECT COUNT(),AVG(sal),deptno,job FROM emp GROUP BY deptno,job HAVING COUNT()>=2;
Original: https://blog.csdn.net/m0_72740348/article/details/126711140
Author: SuMe1992
Title: mysql分组查询
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/694471/
转载文章受原作者版权保护。转载请注明原作者出处!