有没有更有效的方式(处理器时间)来编写此语句?
SELECT student_year,
student_id,
sum(score_0)/sum(exam),
sum(score_1)/sum(exam),
sum(score_2)/sum(exam),
sum(score_3)/sum(exam)
FROM student_scores
WHERE student_year = 2018 AND exam > 0
group BY student_year, student_id;
行看起来像这样:
STUD_YEAR STUD_ID SCORE0 SCORE1 SCORE2 SCORE3 EXAM
2018 21354 17 21 19 25 1
2018 21354 22 19 0 23 1
2018 21354 0 0 0 0 0
2018 67864 10 15 10 20 1
对于学生21354 计算将是
(17+22+0)/(1+1+0), (21+19+0)/(1+1+0), (19+0+0)/(1+1+0), (25+23+0)/(1+1+0)
输出将是
19.5, 20, 21.5, 24
将其放在上下文中的旁注。 一个学生每年可以参加几次考试,每个考试包括4个部分,分别评分。