在处理工作时遇到如下问题:在计算学生涂卡成绩时,并没有标准答案,(选择题- A选项计3分,- B选项计2分,- C选项计1分。
判断题- 是计3分,否计1分)。
最初尝试使用excel公式,但此方法效率低,耗费时间长。尝试使用sql语句,计算出成绩。
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;
评论详情