跳转到主内容
思享编程网:思考分享,玩转编程世界!

MySQL里怎么分组选择数据?

大家好,我是陆砚码。今天我们来聊聊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, sex

GROUP 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(*) > 2

WHERE和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)了解更多内容。

相关文章