首页 新闻 会员 周边

求大神帮忙想个sql语句,MySQL的

0
悬赏园豆:10 [已解决问题] 解决于 2019-09-17 09:14

班级表:class (id,name)   -> 主键,班级名称

学生表:student (id,class_id,name,is_monitor)   ->主键,所属班级,姓名,是否是班长(一个班只有一个)

分组表:group (id,class_id,name,type)   ->主键,所属班级,分组名称,分组类型(算法组、大数据组)

现在要求以班级为单位统计以下信息:

班级名称  班长名称  班级人数  班级算法小组个数  班级大数据小组个数

求大神攒个sql!

什麼江湖的主页 什麼江湖 | 初学一级 | 园豆:116
提问于:2018-07-07 15:55
< >
分享
最佳答案
0

SELECT
id AS class_id,
`name` AS class_name, /* 班级名称 */
(SELECT st.`name` FROM student st WHERE st.class_id=c.id) AS monitor_name, /* 班长名称 */
COUNT(*) AS class_std_count, /* 班级人数 */
(SELECT COUNT(*) FROM `group` WHERE `type`='算法组' AND class_id=c.id) AS sfz_count, /* 班级算法小组个数 */
(SELECT COUNT(*) FROM `group` WHERE `type`='大数据组' AND class_id=c.id) AS dsjz_count /* 班级大数据小组个数 */
FROM `class` c
LEFT JOIN student s ON s.class_id=c.id
GROUP BY c.id

收获园豆:10
大豆男生 | 小虾三级 |园豆:608 | 2018-07-09 15:53
其他回答(2)
0

使用 group by , 表关联。

舒碧 | 园豆:169 (初学一级) | 2018-07-07 18:40
0

select t.,t2.count from class t left join (select classid,count() count from student group by classid) t2 on t.classid=t2.classid

骑驴的是郭襄 | 园豆:202 (菜鸟二级) | 2018-07-08 00:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册