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 |