Partager via


row_number()

Retourne l’index de la ligne actuelle dans un jeu de lignes sérialisé.

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

Syntaxe

row_number( [StartingIndex [, Restart]] )

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Type Requise Description
StartingIndex long Valeur de l’index de ligne à démarrer ou redémarrer. La valeur par défaut est 1.
restart bool Indique quand la numérotation doit être redémarrée vers la valeur StartingIndex . Par défaut, il s’agit de false.

Retours

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

Exemples

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

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

L’exemple suivant est similaire à celui ci-dessus, 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 il est possible de partitionner les données et de numéroter les lignes par partition. Ici, nous partitionnementons les données par 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 Airline Départs Rank
SEA BA 2 1
SEA LH 1 2
SEA LY 0 3
TLV LY 100 1
TLV LH 1 2