Maison >base de données >tutoriel mysql >Comment implémenter la numérotation séquentielle des lignes avec le regroupement de clés dans SQL ?
Numérotation séquentielle des lignes avec regroupement de clés en SQL
SQL offre une fonctionnalité puissante pour énumérer séquentiellement les lignes au sein de groupes de clés spécifiques. Cette fonctionnalité s'avère particulièrement utile lorsque vous devez organiser des données en fonction de catégories ou d'attributs distincts. Explorons comment cette fonctionnalité fonctionne dans différents dialectes SQL.
Implémentation dans différents dialectes SQL
Les dialectes SQL suivants fournissent une solution pour la numérotation séquentielle des lignes par groupe de clés :
Exemples de données et projection souhaitée
Considérez l'exemple de tableau suivant avec des tuples (CODE, NAME) :
CODE NAME ---- ---- A Apple A Angel A Arizona B Bravo C Charlie C Cat D Dog D Doppler D Data D Down
Le souhaité projection utilisant CODE comme attribut de regroupement comme :
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
Requête SQL pour réaliser une numérotation séquentielle des lignes
Pour obtenir cette numérotation séquentielle des lignes par groupe de clés, vous pouvez exploiter la requête SQL suivante :
SELECT CODE, ROW_NUMBER() OVER (PARTITION BY CODE ORDER BY NAME) - 1 As C_NO, NAME FROM MyTable
Cette requête partitionnera la table en fonction de la colonne CODE, triera les enregistrements dans chaque partition par la colonne NOM, puis soustrayez 1 du numéro de ligne résultant pour obtenir la numérotation séquentielle souhaitée à partir de 0 pour chaque groupe de clés.
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!