大家好,我是陆砚码。今天我们来聊聊MySQL里的分组选择数据,也就是GROUP BY和聚合函数的使用。这可是数据库查询中的高级技巧,学会了能让你在数据处理上更上一层楼。
首先,GROUP BY关键字是用来对数据进行分组的,结合聚合函数(如SUM、COUNT等)可以实现对数据的汇总。比如,你想知道每个年级有多少男生和女生,就可以用GROUP BY来分组,再结合COUNT来计数。
GROUP BY与聚合函数的使用
基本格式是这样的:
select [聚合函数] 字段名 from 表名 [where 查询条件] group by 字段名比如,你想统计每个年级的男生和女生人数,可以这样写:
select gradeId, sex, count(*) from student group by gradeId, sexGROUP BY中SELECT指定的字段限制
需要注意的是,在SELECT中指定的字段,要么就要包含在GROUP BY语句的后面,作为分组的依据;要么就要被包含在聚合函数中。否则,查询会报错。
使用HAVING与ORDER BY
HAVING子句用来对分组后的数据进行筛选,它通常与GROUP BY连用。比如,你想查询每个年级男生和女生的人数,但只想统计人数超过2人的年级,就可以用HAVING。
select gradeId, sex, count(*) from student group by gradeId, sex having count(*) > 2WHERE和HAVING的区别在于,WHERE是在分组之前过滤数据,而HAVING是在分组之后过滤数据。
编程要求
现在,让我们来试试手。根据给出的数据表,统计2、3、4年级的男生和女生总人数。下面是参考代码:
USE School;
#1.查询表中2,3,4年级中分别男女的总人数
select gradeId, sex, count(*)
from student
where gradeId in (2,3,4)
group by gradeId, sex;
如果你对数据库查询还有更多疑问,欢迎访问「思享编程网」(www.sxgpb.com)了解更多内容。
