MySQL学生人数统计小案例

classinfo表数据:

studentinfo表数据:

每个班的学生人数

# 统计每个班的学生人数
SELECT classinfo.`class_name`,COUNT(studentinfo.`c_id`) counts FROM classinfo LEFT JOIN studentinfo
ON classinfo.`id`=studentinfo.`c_id`
GROUP BY classinfo.`id`;

查询结果:

男生、女生数量

# 统计男生、女生数量
SELECT gender,COUNT(gender) numbers FROM studentinfo GROUP BY gender;

查询结果:

每个班男生、女生数量

# 统计每个班男生、女生数量
SELECT classinfo.`class_name`,SUM(CASE WHEN studentinfo.`gender`='男' THEN 1 END) men,
SUM(CASE WHEN studentinfo.`gender`='女' THEN 1 END) women FROM classinfo LEFT JOIN studentinfo
ON classinfo.`id`=studentinfo.`c_id`
GROUP BY classinfo.`id`;

查询结果:

 总结:这个小案例主要采用了分组聚合、多表联查以及case判断的知识点来完成的。

打卡第10天,欢迎对数据库感兴趣的朋友一起讨论、交流,请多指教!


版权声明:本文为xxt201原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。