小编典典

SQL RANK() 与 ROW_NUMBER()

all

我对这些之间的差异感到困惑。运行以下 SQL 会得到两个相同的结果集。有人可以解释一下差异吗?

SELECT ID, [Description], RANK()       OVER(PARTITION BY StyleID ORDER BY ID) as 'Rank'      FROM SubStyle
SELECT ID, [Description], ROW_NUMBER() OVER(PARTITION BY StyleID ORDER BY ID) as 'RowNumber' FROM SubStyle

阅读 67

收藏
2022-05-20

共1个答案

小编典典

ROW_NUMBER : 为从 1 开始的每一行返回一个唯一编号。对于具有重复值的行,编号是任意分配的。

Rank : 为从 1 开始的每一行分配一个唯一编号,但具有重复值的行除外,在这种情况下,分配相同的排名,并且每个重复排名的序列中都会出现一个间隙。

2022-05-20