微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

按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子句中.看,它按日期分割这些排名,然后按分数对这些子集进行排序.很棒,嗯?

原文地址:https://www.jb51.cc/mssql/77983.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐