row_number
排名窗口函数
适用于: Databricks SQL Databricks Runtime
根据窗口分区中的行顺序,为每一行分配唯一的顺序编号(从 1 开始)。
语法
row_number()
参数
该函数不接受任何参数。
返回
INTEGER
。
该窗口函数的 OVER
子句必须包含 ORDER BY 子句。
与 rank
和 dense_rank
不同,row_number
打破平局。
如果顺序不是唯一的,则结果是不确定的。
示例
> SELECT a,
b,
dense_rank() OVER(PARTITION BY a ORDER BY b),
rank() OVER(PARTITION BY a ORDER BY b),
row_number() OVER(PARTITION BY a ORDER BY b)
FROM VALUES ('A1', 2), ('A1', 1), ('A2', 3), ('A1', 1) tab(a, b);
A1 1 1 1 1
A1 1 1 1 2
A1 2 2 3 3
A2 3 1 1 1