sql server 中用于排名的三个函数 row_number() ,RANK() 和 DENSE_RANK()

时间:2022-11-11 07:21:12

row_number()  ,RANK() 和  DENSE_RANK()  三个配合over()  使用排名 只是只是计算方式不一样,语法基本一样

语法: ROW_NUMBER() OVER (ORDER BY 排名的字段) 例如:

select  OrderAmount ,
row_number() over(order by OrderAmount desc) as row_number ,
RANK() over(order by OrderAmount desc) as RANK ,
DENSE_RANK() OVER (ORDER BY OrderAmount desc ) AS DENSE_RANK
from rrs_DeliveryOrder

下面是结果对比一下就很清楚

sql server 中用于排名的三个函数 row_number()  ,RANK() 和  DENSE_RANK()

row_number()  按一定的排序方式 一直往下排  值相同的排在前面的排名靠前

RANK  在一定的排序方式 一直往下排,分数相同的该排名的最高排名算。

DENSE_RANK() 在一定的排序方式 分数相同的排名相同 。后面会一直排下去