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

如何按学期与CGPA分数区间统计各分段学生人数

按学期和分数区间统计人数实现方案

默认你的SCORE字段为10分制,区间规则为左闭右开(如10-9区间对应分数≥9且<10,以此类推),你可以根据实际规则调整边界判断逻辑。
另外注意你提供的表名SEMETSER、字段SEMISTER_NO大概率是拼写误差,实际场景可以修正为SEMESTER和SEMESTER_NO,以下SQL沿用你给出的原始命名。

SELECT 
    s.SEMISTER_NO,
    s.NAME AS semester_name,
    COUNT(CASE WHEN ss.SCORE >=9 AND ss.SCORE <10 THEN 1 END) AS `10-9分人数`,
    COUNT(CASE WHEN ss.SCORE >=8 AND ss.SCORE <9 THEN 1 END) AS `9-8分人数`,
    COUNT(CASE WHEN ss.SCORE >=7 AND ss.SCORE <8 THEN 1 END) AS `8-7分人数`,
    COUNT(CASE WHEN ss.SCORE >=6 AND ss.SCORE <7 THEN 1 END) AS `7-6分人数`,
    COUNT(CASE WHEN ss.SCORE >=5 AND ss.SCORE <6 THEN 1 END) AS `6-5分人数`,
    COUNT(CASE WHEN ss.SCORE >=4 AND ss.SCORE <5 THEN 1 END) AS `5-4分人数`
FROM SEMETSER s
LEFT JOIN STUDENT_SEMETSER ss ON s.SEMISTER_NO = ss.SEMESTER_NO
GROUP BY s.SEMISTER_NO, s.NAME
ORDER BY s.SEMISTER_NO;

逻辑说明

  • 用LEFT JOIN关联学期表和学生成绩表,确保没有学生成绩的学期也会在结果中展示,对应区间人数为0
  • 用CASE WHEN匹配分数区间,符合条件返回1,不符合返回NULL,COUNT函数会自动忽略NULL值实现计数
  • 按学期编号、学期名称分组,输出每个学期的各区间人数统计

如果你的分数是百分制,只需要把CASE WHEN的判断边界乘以10即可,比如10-9分对应≥90且<100。

内容的提问来源于stack exchange,提问作者GoAshraya Save Cows

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:36:01