Numérotation séquentielle des lignes par clé de groupe en SQL
En SQL, vous pouvez numéroter séquentiellement les lignes d'un groupe de clés à l'aide de la fonction ROW_NUMBER() . Cette fonction attribue un numéro unique à chaque ligne d'une partition, qui est définie par la clause PARTITION BY.
Syntaxe :
SELECT *, ROW_NUMBER() OVER (PARTITION BY key_column ORDER BY order_column) - 1 AS row_number FROM table_name
Exemples :
Considérez le tableau fourni :
CODE | NAME |
---|---|
A | Apple |
A | Angel |
A | Arizona |
B | Bravo |
C | Charlie |
C | Cat |
D | Dog |
D | Data |
D | Down |
D | Doppler |
Pour numéroter les lignes séquentiellement au sein du groupe CODE, utilisez la requête suivante :
SELECT CODE, ROW_NUMBER() OVER (PARTITION BY CODE ORDER BY NAME) - 1 AS C_NO, NAME FROM MyTable
Cela produira le résultat souhaité :
CODE | C_NO | NAME |
---|---|---|
A | 0 | Apple |
A | 1 | Angel |
A | 2 | Arizona |
B | 0 | Bravo |
C | 1 | Charlie |
C | 0 | Cat |
D | 0 | Dog |
D | 1 | Data |
D | 2 | Down |
D | 3 | Doppler |
Compatibilité :
La fonction ROW_NUMBER() est supportée par les bases de données suivantes :
Cela couvre la plupart bases de données SQL couramment utilisées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!