row_rank_dense()

Applies to: ✅ Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Returns the current row's dense rank in a serialized row set.

The row rank starts by default at 1 for the first row, and is incremented by 1 whenever the provided Term is different than the previous row's Term.

Syntax

row_rank_dense ( Term )

Learn more about syntax conventions.

Parameters

Name Type Required Description
Term string ✔️ An expression indicating the value to consider for the rank. The rank is increased whenever the Term changes.
restart bool Indicates when the numbering is to be restarted to the StartingIndex value. The default is false.

Returns

Returns the row rank of the current row as a value of type long.

Example

The following query shows how to rank the Airline by the number of departures from the SEA Airport using dense rank.

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)

Output

Airport Airline Departures Rank
SEA BA 2 1
SEA LH 3 2
SEA UA 3 2
SEA EL 3 2
SEA LY 100 3

The following example shows how to rank the Airline by the number of departures per each partition. Here, we partition the data by 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)

Output

Airport Airline Departures Rank
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