MySQL查询 - 需要列出排名,包括特定分类的重复项

时间:2015-11-17 23:32:35

标签: mysql sql jdbc

我需要让学生获得前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或任何简单的东西。

1 个答案:

答案 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