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

MySQL基于科目平均分生成难度标签并关联表的实现求助

解决方案

直接使用以下SQL语句即可实现需求:

SELECT
    LOWER(s.subject) AS subject,
    s.id AS subjectid,
    ROUND(AVG(ss.score), 0) AS avg_score,
    CASE
        WHEN AVG(ss.score) < 35 THEN 'hard'
        WHEN AVG(ss.score) BETWEEN 35 AND 45 THEN 'medium'
        ELSE 'easy'
    END AS level
FROM subjectids s
JOIN studentsScores ss ON s.id = ss.subjectid
GROUP BY s.id, s.subject
ORDER BY s.id;

关键部分说明

  • JOIN关联表:通过subjectids.id和studentsScores.subjectid关联,只保留有学生成绩的科目(对应你期望结果里的3个科目)
  • GROUP BY分组:按科目ID和名称分组,确保每个科目只计算一次平均分
  • AVG计算平均分:用AVG()函数统计每个科目的平均分数,ROUND()用来把结果取整,和你要的格式一致
  • CASE WHEN判断难度:完全按照给定规则生成难度标签:
    • 平均分<35 → hard
    • 35≤平均分≤45 → medium
    • 平均分>45 → easy
  • LOWER转换小写:把科目名称转成小写,和期望的输出格式匹配

内容的提问来源于stack exchange,提问作者Mila

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:31:15