我需要使用 INNER JOIN 对每个学生的总值求和,然后找到具有最大值的行。
我使用下面的查询来查找每个学生的总和并按降序排序显示所有学生,包括具有最大值的学生。
Select S.Student_ID, S.Student_Name, SUM(A.Score) as "TOTAL_SCORE"
from Student S
inner join Attempt A
on S.Student_ID = A.Student_ID
group by S.Student_ID, S.Student_Name
order by 3 desc;
我只需要显示具有最大值的学生,但它显示一个空表。
Select S.Student_ID,
S.Student_Name,
MAX(A.Score) as "TOTAL SCORE"
from Student S
inner join Attempt A
on S.Student_ID = A.Student_ID
where A.Score = (select SUM(A.Score)
from Student S)
group by S.Student_ID, S.Student_Name;`
这是否必须使用 MAX 完成,或者是否有其他方法可以做到这一点,如果后者那么如何。
不知道我是否可以解释得比这更简单。