"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment concaténer des colonnes basées sur GROUP BY en SQL ?

Comment concaténer des colonnes basées sur GROUP BY en SQL ?

Publié le 2025-01-21
Parcourir:371

How to Concatenate Columns Based on GROUP BY in SQL?

Connexion de colonne sous l'instruction GROUP BY dans SQL

En SQL, une manière courante de combiner ou de joindre des colonnes en fonction d'une instruction GROUP BY consiste à utiliser une combinaison de fonctions d'agrégation et d'opérateurs de chaîne. Voyons comment y parvenir.

Considérez l'exemple de tableau suivant :

IDUtilisateurActivitéURL de la page
1iact1ab
2i acte1cd
3vousacte2xy
4vousagissez2st

Pour concaténer les valeurs PageURL de chaque utilisateur et groupe d'activités séparées par des virgules, nous pouvons utiliser la requête suivante :

SELECT [utilisateur], activité, STUFF((SELECT ',' page URL FROM nom de la table WHERE [utilisateur] = a. [utilisateur] AND activité = a. activité FOR XML PATH ('')) , 1, 1, '') AS liste d'URL FROM nom de table AS GROUP BY [utilisateur], activité

Décomposition de la requête :

  • SELECT [Utilisateur], Activité, Liste d'URL : Sélectionnez les colonnes Utilisateur, Activité et Liste d'URL à afficher.
  • STUFF : Concatène les valeurs PageURL en une seule chaîne.
  • (SELECT ',' PageURL ...): sous-requête pour extraire la valeur PageURL de chaque groupe et les concaténer avec une virgule comme séparateur.
  • FOR XML PATH ('') : Convertit les résultats de la sous-requête en chaîne XML.
  • STUFF(... , 1, 1, ''): supprime la virgule au début de la chaîne XML, ne laissant que la valeur concaténée.
  • GROUP BY [USER], ACTIVITY: Regroupe les résultats par « Utilisateur » et « Activité » afin que la jointure soit effectuée sur chaque combinaison unique.

Le tableau résultant aura la mise en page souhaitée :

UtilisateurActivitéListe d'URL
Moi acte1ab, cd
vousact2xy, st

Cette approche exploite la puissance des fonctions d'agrégation et des opérations de chaîne pour concaténer efficacement les valeurs de colonnes basées sur les opérations GROUP BY, ce qui en fait une solution flexible pour une variété de tâches de manipulation de données.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3