【发布时间】:2020-07-11 04:00:25
【问题描述】:
谁能帮帮我?
我有两个表Results 和Students 显示在这里:
StudentID CourseID Year Semester Mark
------------------------------------------------
S001 DS01 2017 1 3
S001 DS01 2017 2 6
S001 AI01 2017 1 4.5
S001 AI01 2017 2 6
S001 CN01 2017 3 5
S002 DS01 2016 1 4.5
S002 DS01 2017 1 7
S002 CN01 2016 3 10
S002 DSA1 2016 3 9
StudentID LastName FirstName Sex DateOfBirth PlaceOfBirth DeptID Scholarship AverageScore
S001 Lê Kim Lan F 23/02/1990 Hà nội IS 130000
S002 Trần Minh Chánh M 24/12/1992 Bình Định NC 150000
(AverageScore 现在为空)
我想用课程 ID 更新 - 你能帮我吗?
这是我的代码:
update Students
set AverageScore = (select avg(max(Mark).CourseID)
from Results
where Results.StudentID = Students.StudentID)
【问题讨论】:
-
预期输出是什么?
-
请详细说明您的问题。正如我们所见,同一个学生有不同的课程,同一个课程有多个分数。但是学生表中只有一个平均字段。您想为特定学生获取每个课程的最大值并将它们平均并将其保存在学生表中吗?例如:5001 => (6 (DS01 最大值) + 6 (AI01 最大值) + 5 (CN01)) / 3 = 17/3 = 5.67
标签: sql-server max average