Share via


row_number()

Devuelve el índice de la fila actual en un conjunto de filas serializado.

El índice de fila comienza de forma predeterminada en 1 para la primera fila y se incrementa por 1 para cada fila adicional. Opcionalmente, el índice de fila puede iniciarse en un valor diferente al 1de . Además, el índice de fila se puede restablecer según algún predicado proporcionado.

Syntax

row_number( [StartingIndex [,Restart]] )

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
StartingIndex long Valor del índice de fila al que se va a iniciar o reiniciar. El valor predeterminado es 1.
restart bool Indica cuándo se reiniciará la numeración en el valor StartingIndex . De manera predeterminada, es false.

Devoluciones

La función devuelve el índice de fila de la fila actual como un valor de tipo long.

Ejemplos

En el ejemplo siguiente se devuelve una tabla con dos columnas, la primera columna (a) con números de 10 abajo a 1y la segunda columna (rn) con números de 1 hasta 10:

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

El ejemplo siguiente es similar al anterior, solo la segunda columna (rn) comienza en 7:

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

En el último ejemplo se muestra cómo se pueden particionar los datos y numerar las filas por cada partición. En este caso, particionamos los datos 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)

La ejecución de esta consulta genera el siguiente resultado:

Airport Línea aérea Salidas Rango
SEA BA 2 1
SEA LH 1 2
SEA LY 0 3
TLV LY 100 1
TLV LH 1 2