有一个名为的表,StudentScore
其中包含以下字段:Score
、和。后面三个是主键。CourseID
StudentID
Semester
我想编写一个存储过程来获取每个学生的平均分数。但是规则相当复杂,我不知道如何在一个查询中表达它。如果可能,应避免嵌套查询。
这是规则:
如果一个学生多次参加一门课程,则只计算最后的分数。
例如,有以下数据:
StudentID | CourseID | Semester | Score
1 1 1 80
1 2 1 40
1 3 1 60
1 2 2 50
1 3 2 20
2 1 1 90
存储过程应返回:
StudentID | AvgScore
1 50 // which is avg(80, 50, 20)
2 90
请建议尽可能高效的存储过程。谢谢!