iLe*_*ing 7 sql t-sql sql-server
我有这样一张桌子:
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中这样做?
Eri*_*ric 28
您想rank在T-SQL中使用该函数:
select
    date,
    student,
    rank() over (partition by date order by score desc) as rank
from
    grades
order by
    date, rank, student
神奇在于该over条款.看,它按date顺序拆分这些排名,然后按顺序排列这些子集score.太棒了,是吗?