Numérotation séquentielle des lignes par groupe de clés en SQL
En SQL, la fonction ROW_NUMBER() attribue des numéros séquentiels aux lignes d'un ensemble de résultats. Pour attribuer des numéros séquentiels par groupe de clés, utilisez la clause PARTITION BY pour regrouper les données par la ou les clés souhaitées.
Voici un exemple pour la table donnée et la sortie souhaitée :
SELECT CODE, ROW_NUMBER() OVER (PARTITION BY CODE ORDER BY NAME) - 1 AS C_NO, NAME FROM MyTable;
Sortie :
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
Cette requête attribue des numéros de ligne séquentiels (C_NO) à chaque groupe de clés (CODE), en commençant par 0, par ordre croissant de NOM au sein de chaque groupe.
Bases de données prises en charge :
La fonction ROW_NUMBER() avec PARTITION BY est prise en charge dans le bases de données suivantes :
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!