MySQL 分组查询
分组查询
按照某个或多个数据进行分组
分组查询语法:group by 分组字段
[group by 字段] [having (条件表达式)]
having:过滤分组
以下表为例
示例1:按照性别分组。分别查询男、女同学的平均分
示例2:按照性别分组。分别查询男、女同学的平均分,人数
示例3:按照性别分组。 分别查询男、女同学的平均分,人数要求:分数低于70分的人,不参与分组
示例4:按照性别分组。 分别查询男、女同学的平均分,人数要求:分数低于70分的人,不参与分组,分组之后。人数要大于2个人
示例5:多字段分组
分组从左往右,先按照第一个字段进行,然后对第一个字段相同的值按照第二个字段分组,以此类推。
select price,count(*) as total from fruits group by price,id;
补充:with rollup 关键字
使用with rollup 后,会在所有分组记录后新增一条记录,该记录计算查询出的所有纪律的总和,即统计记录数量。
注意:where 和 having 的区别
- where在分组之前进行限定,having在分组之后进行限定。
- where后不可以跟聚合函数,having可以进行聚合函数的判断。
- where先执行条件,再执行查询
- having 先执行查询,再执行条件
还没有评论,来说两句吧...