我需要让学生获得前5名GPA。有些记录具有相同的GPA值,在这种情况下,它们需要计入相同的等级。
如果有10名学生,3名具有相同的GPA,我需要按照最高GPA顺序返回7条记录。
最后,我需要为新生带回记录。 这是我尝试过的:
Select s.StudentID, s.GPA, s.Classification
From Student s
Join (Select distinct GPA from Student Order By GPA desc limit 5) b on a.GPA = b.GPA")
这为所有学生带回了前5名的记录。我需要帮助查找我在哪里添加Where Classification = 'Freshman'
。
我需要一个where子句,还是有更好的方法来做到这一点?
这是在MySQL中完成的,所以我不能使用DenseRank或任何简单的东西。
答案 0 :(得分:1)
Select s.StudentID, s.GPA, s.Classification
From Student s
Join (Select distinct GPA from Student
where Classification = 'Freshman'
Order By GPA desc limit 5) b
on s.GPA = b.GPA
where s.Classification = 'Freshman'
order by s.GPA desc