按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子句中.看,它按日期分割这些排名,然后按分数对这些子集进行排序.很棒,嗯? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |