加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

按SQL级别对学生进行排名

发布时间:2020-12-12 06:44:00 所属栏目:MsSql教程 来源:网络整理
导读:我有这样一张桌子: Date StudentName Score01.01.09 Alex 10001.01.09 Tom 9001.01.09 Sam 7001.02.09 Alex 10001.02.09 Tom 5001.02.09 Sam 100 我需要在不同日期内按分数对结果表中的学生进行排名,如下所示: Date Student Rank01.01.09 Alex 101.01.09 To
我有这样一张桌子:
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子句中.看,它按日期分割这些排名,然后按分数对这些子集进行排序.很棒,嗯?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读