按SQL级别对学生进行排名

前端之家收集整理的这篇文章主要介绍了按SQL级别对学生进行排名前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这样一张桌子:
Date       StudentName    score

01.01.09   Alex           100
01.01.09   Tom            90
01.01.09   Sam            70
01.02.09   Alex           100
01.02.09   Tom            50
01.02.09   Sam            100

我需要在不同日期内按分数对结果表中的学生进行排名,如下所示:

Date       Student         Rank

01.01.09   Alex             1
01.01.09   Tom              2
01.01.09   Sam              3
01.02.09   Alex             1
01.02.09   Sam              1
01.02.09   Tom              2

我怎么能在sql中这样做?

解决方法

您想在T-sql中使用rank函数
select
    date,student,rank() over (partition by date order by score desc) as rank
from
    grades
order by
    date,rank,student

神奇的是在over子句中.看,它按日期分割这些排名,然后按分数对这些子集进行排序.很棒,嗯?

猜你在找的MsSQL相关文章