阅读量:3
ROW_NUMBER
和 RANK
都是用于在 SQL 查询结果中对行进行排序的窗口函数。
主要区别在于:
ROW_NUMBER
会为每一行分配一个唯一的连续整数值,而RANK
则会为具有相同排序值的行分配相同的排名,然后跳过下一个排名值。- 当存在并列时,
ROW_NUMBER
会为每个并列行分配不同的排名,而RANK
会跳过相同排名的下一个值,因此可能会出现排名不连续的情况。
举例来说,如果有如下排序结果:
1. A 2. B 2. C 4. D
使用 ROW_NUMBER
会得到:
1. A 2. B 3. C 4. D
而使用 RANK
会得到:
1. A 2. B 2. C 4. D