row_rank_dense()

返回序列化行集中当前行的密集排名。

默认情况下,第一行的行排名从 1 开始,只要提供的 Term 与前一行的 Term 不同,行索引就会以 1 递增。

语法

row_rank_dense(Term)

详细了解语法约定

参数

客户 类型​​ 必需 说明
Term string 一个表达式,表示在排名时要考虑的值。 每当 Term 发生变化时,排名就会提高。
restart bool 表示何时将编号重新设置为 StartingIndex 值。 默认为 false

返回

将当前行的行排名作为 long 类型的值返回。

示例

以下查询演示了如何使用密集排名,按从 SEA Airport 出发的航班数对 Airline 进行排名。

datatable (Airport:string, Airline:string, Departures:long)
[
  "SEA", "LH", 3,
  "SEA", "LY", 100,
  "SEA", "UA", 3,
  "SEA", "BA", 2,
  "SEA", "EL", 3
]
| sort by Departures asc
| extend Rank=row_rank_dense(Departures)

输出

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

以下示例显示如何根据每个分区的出发次数对 Airline 进行排名。 此处,我们按 Airport 对数据进行分区:

datatable (Airport:string, Airline:string, Departures:long)
[
  "SEA", "LH", 3,
  "SEA", "LY", 100,
  "SEA", "UA", 3,
  "SEA", "BA", 2,
  "SEA", "EL", 3,
  "AMS", "EL", 1,
  "AMS", "BA", 1
]
| sort by Airport desc, Departures asc
| extend Rank=row_rank_dense(Departures, prev(Airport) != Airport)

输出

Airport 航空公司 Departures 排名
SEA BA 2 1
SEA LH 3 2
SEA UA 3 2
SEA EL 3 2
SEA LY 100 3
AMS EL 1 1
AMS BA 1 1