You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于现有数据库结构统计各课程组中学习英语的学生数量

现有表结构合理性及统计方案

你当前设计的数据库结构完全可以满足统计需求,无需调整,该结构符合关系型数据库设计规范,各实体及关联关系划分清晰。

你需要的统计逻辑本质是筛选所有关联英语的课程组,按课程组分组统计关联的学生报名记录数,由于多对多关联表GroupStudent中每条记录对应1名学生在1个课程组的报名关系,天然支持同一名学生报名多个课程组时分别计入对应组的统计结果。

以下是可供参考的统计SQL,假设各表关键字段命名如下(如果你的实际字段名不同,调整对应字段即可):

  • languages表:主键id,语言名称字段language_name
  • courseGroups表:主键id,关联语言的外键language_id,关联教师的外键teacher_id,可选字段group_name(课程组名称)
  • GroupStudent表:关联课程组的外键course_group_id,关联学生的外键student_id
  • teachers表:主键id,可选字段teacher_name(教师姓名)
SELECT
    cg.id AS 课程组ID,
    cg.group_name AS 课程组名称,
    t.teacher_name AS 授课教师,
    COUNT(gs.student_id) AS 组内学生数
FROM
    courseGroups cg
-- 关联语言表筛选英语课程
INNER JOIN languages l
    ON cg.language_id = l.id
-- 关联教师表,不需要展示教师信息可删除这段关联
INNER JOIN teachers t
    ON cg.teacher_id = t.id
-- 关联报名关系表统计学生数,LEFT JOIN可保留0人报名的英语课程组
LEFT JOIN GroupStudent gs
    ON cg.id = gs.course_group_id
WHERE
    l.language_name = '英语'
-- 按课程组维度分组统计
GROUP BY
    cg.id, cg.group_name, t.teacher_name

如果不需要保留0人报名的空课程组,把LEFT JOIN GroupStudent改成INNER JOIN GroupStudent即可。

内容的提问来源于stack exchange,提问作者Стопчак Олег

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:27:04