Share via


row_number()

Devolve o índice da linha atual num conjunto de linhas serializado.

O índice de linhas começa por predefinição em 1 para a primeira linha e é incrementado por 1 para cada linha adicional. Opcionalmente, o índice de linhas pode começar com um valor diferente de 1. Além disso, o índice de linhas pode ser reposto de acordo com alguns predicados fornecidos.

Syntax

row_number( [StartingIndex [,Restart]] )

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Necessário Descrição
StartingIndex long O valor do índice de linhas a iniciar ou reiniciar. O valor predefinido é 1.
reiniciar bool Indica quando a numeração deve ser reiniciada para o valor StartingIndex . A predefinição é false.

Devoluções

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

Exemplos

O exemplo seguinte devolve 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 seguinte é semelhante ao acima, apenas 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 se pode 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 desta consulta produz o seguinte resultado:

Aeroporto Companhia aérea Partidas Posição
MAR BA 2 1
MAR LH 1 2
MAR LY 0 3
TLV LY 100 1
TLV LH 1 2