row_number()

Retorna o índice da linha atual em um conjunto de linhas serializado.

O índice de linha começa por padrão em 1 para a primeira linha e é incrementado por 1 para cada linha adicional. Opcionalmente, o índice de linha pode começar com um valor diferente de 1. Além disso, o índice de linha pode ser redefinido de acordo com algum predicado fornecido.

Syntax

row_number( [StartingIndex [,Restart]] )

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Obrigatório Descrição
Startingindex long O valor do índice de linha para o qual iniciar ou reiniciar. O valor padrão é 1.
restart bool Indica quando a numeração deve ser reiniciada para o valor StartingIndex . O padrão é false.

Retornos

A função retorna o índice de linha da linha atual como um valor do tipo long.

Exemplos

O exemplo a seguir retorna uma tabela com duas colunas, a primeira coluna (a) com números de 10 baixo para 1e a segunda coluna (rn) com números de 1 até 10:

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

O exemplo a seguir é semelhante ao acima, somente a segunda coluna (rn) começa em 7:

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

O último exemplo mostra como é possível particionar os dados e numerar as linhas por cada partição. Aqui, particionamos os dados por 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)

A execução dessa consulta produz o seguinte resultado:

Airport Linha Aérea Partidas Rank
SEA BA 2 1
SEA LH 1 2
SEA LY 0 3
TLV LY 100 1
TLV LH 1 2