温馨提示×

row_number与rank的区别

小樊
413
2024-06-17 14:26:55
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

ROW_NUMBERRANK 都是用于在 SQL 查询结果中对行进行排序的窗口函数。

主要区别在于:

  1. ROW_NUMBER 会为每一行分配一个唯一的连续整数值,而 RANK 则会为具有相同排序值的行分配相同的排名,然后跳过下一个排名值。
  2. 当存在并列时,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

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:Oracle中row_number与rank的区别

1