你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

row_number()

返回序列化行集中当前行的索引。

默认情况下,第一行的行索引从 1 开始,每增加一行就增加 1。 可以选择让行索引从不同于 1 的值开始。 此外,可以根据提供的谓词重置行索引。

语法

row_number( [起始索引 [,重启]] )

详细了解语法约定

参数

名称 类型 必需 说明
StartingIndex long 要从其开始(或重新开始)的行索引的值。 默认值为 1。
restart bool 表示何时将编号重新设置为 StartingIndex 值。 默认为 false

返回

函数将当前行的行索引作为 long 类型的值返回。

示例

以下示例返回一个包含两列的表,第一列 (a) 包含从 101 的数字,第二列 (rn) 包含从 110 的数字:

range a from 1 to 10 step 1
| sort by a desc
| extend rn=row_number()

下面的示例与上面的示例类似,只是第二列 (rn) 从 7 开始:

range a from 1 to 10 step 1
| sort by a desc
| extend rn=row_number(7)

最后一个示例展示了如何对数据进行分区,以及如何为每个分区的行编号。 此处,我们按 Airport 对数据进行分区:

datatable (Airport:string, Airline:string, Departures:long)
[
  "TLV", "LH", 1,
  "TLV", "LY", 100,
  "SEA", "LH", 1,
  "SEA", "BA", 2,
  "SEA", "LY", 0
]
| sort by Airport asc, Departures desc
| extend Rank=row_number(1, prev(Airport) != Airport)

运行此查询会生成以下结果:

Airport 航空公司 Departures 排名
SEA BA 2 1
SEA LH 1 2
SEA LY 0 3
TLV LY 100 1
TLV LH 1 2