Share via


row_number()

Retourne l’index de la ligne active dans un ensemble de lignes sérialisées.

L’index de ligne commence par défaut à 1 pour la première ligne et est incrémenté par 1 pour chaque ligne supplémentaire. Si vous le souhaitez, l’index de ligne peut commencer à une valeur différente de 1. En outre, l’index de ligne peut être réinitialisé en fonction d’un prédicat fourni.

Syntax

row_number( [StartingIndex [,Restart]] )

Découvrez les conventions de syntaxe.

Paramètres

Nom Type Obligatoire Description
StartingIndex long Valeur de l’index de ligne sur laquelle démarrer ou redémarrer. La valeur par défaut est 1.
restart bool Indique quand la numérotation doit être redémarrée à la valeur StartingIndex . La valeur par défaut est false.

Retours

La fonction retourne l’index de ligne de la ligne actuelle sous la forme d’une valeur de type long.

Exemples

L’exemple suivant retourne une table avec deux colonnes, la première colonne (a) avec des nombres de 10 jusqu’à 1, et la deuxième colonne (rn) avec des nombres de 1 jusqu’à 10:

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

L’exemple suivant est similaire à ce qui précède, seule la deuxième colonne (rn) commence à 7:

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

Le dernier exemple montre comment partitionner les données et numéroter les lignes pour chaque partition. Ici, nous partitionnons les données en 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)

L’exécution de cette requête produit le résultat suivant :

Aéroport Compagnie aérienne Départs Rank
SEA BA 2 1
SEA LH 1 2
SEA LY 0 3
TLV LY 100 1
TLV LH 1 2