衡水名师工作室
利用Sql语句计算成绩

利用Sql语句计算成绩

张晓微发表于2025-06-30

在处理工作时遇到如下问题:在计算学生涂卡成绩时,并没有标准答案,(选择题- A选项计3分,- B选项计2分,- C选项计1分。

判断题- 是计3分,否计1分)。

最初尝试使用excel公式,但此方法效率低,耗费时间长。尝试使用sql语句,计算出成绩。

image.png

Ps:语句如下

SELECT

  sub.id,

  sub.score_1_to_30,

  sub.score_31_to_40,

  sub.score_1_to_30 + sub.score_31_to_40 AS total_score

FROM (

  SELECT

    id,

    -- 1-30题计分

    (CASE t1 WHEN 'A' THEN 3 WHEN 'B' THEN 2 WHEN 'C' THEN 1 ELSE 0 END) +

    (CASE t2 WHEN 'A' THEN 3 WHEN 'B' THEN 2 WHEN 'C' THEN 1 ELSE 0 END) +

    ... +  -- 中间省略t3到t29的计算

    (CASE t30 WHEN 'A' THEN 3 WHEN 'B' THEN 2 WHEN 'C' THEN 1 ELSE 0 END) AS score_1_to_30,

    -- 31-40题计分

    (CASE t31 WHEN 'A' THEN 3 WHEN 'B' THEN 1 ELSE 0 END) +

    (CASE t32 WHEN 'A' THEN 3 WHEN 'B' THEN 1 ELSE 0 END) +

    ... +  -- 中间省略t33到t39的计算

    (CASE t40 WHEN 'A' THEN 3 WHEN 'B' THEN 1 ELSE 0 END) AS score_31_to_40

  FROM students

) AS sub;

评论详情