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天,欢迎对数据库感兴趣的朋友一起讨论、交流,请多指教!