假设我有一个存储学生信息的表id | first_name | last_name | dob | score
其中score
是对它们性能的一些非唯一的数值评估。(模式实际上并不相关,我试图尽可能地通用)
我想知道,对于任何给定的学生,他们基于score
的总排名是多少,ROW_NUMBER()
或任何等效的计数器方法实际上并不起作用,因为它们只考虑返回的条目,所以如果你只对一个特定的学生感兴趣,它总是1
。
计算分数大于当前分数的学生数也不起作用,因为您可以有多个分数相同的学生。按辅助字段(如dob
)额外排序是否起作用,或者是否太慢?
1条答案
按热度按时间gijlo24d1#
您应该能够将
JOIN
转换为一个子查询,该子查询将提供整个人群中每个学生的排名:我认为数据的规模将是决定这对于您的用例是否是一个现实的解决方案的关键因素。