zl程序教程

您现在的位置是:首页 >  其他

当前栏目

sql 精读(三) 标准 SQL 中的编号函数示例

标准SQL 函数 示例 编号 精读
2023-09-14 09:09:30 时间

编号函数概念
编号函数会根据每一行在指定窗口中的位置向该行分配整数值。

RANK()、DENSE_RANK() 和 ROW_NUMBER() 示例:

WITH Numbers AS
 (SELECT 1 as x
  UNION ALL SELECT 2
  UNION ALL SELECT 2
  UNION ALL SELECT 5
  UNION ALL SELECT 8
  UNION ALL SELECT 10
  UNION ALL SELECT 10
)
SELECT x,
  RANK() OVER (ORDER BY x ASC) AS rank,
  DENSE_RANK() OVER (ORDER BY x ASC) AS dense_rank,
  ROW_NUMBER() OVER (ORDER BY x) AS row_num
FROM Numbers
xrankdense_rankrow_num
1111
2222
2223
5434
8545
10656
10657
  • List item

  • RANK():x=5 时,rank 返回 4,因为 RANK() 按前一个窗口排序组中对等项的数量递增。

  • DENSE_RANK():对于 x=5,dense_rank 返回 3,因为 DENSE_RANK() 总是递增 1,绝不跳过值。

  • ROW_NUMBER():x=5 时,row_num 返回 4。