Maison > base de données > tutoriel mysql > Comment concaténer des valeurs de colonne avec GROUP BY en SQL ?

Comment concaténer des valeurs de colonne avec GROUP BY en SQL ?

DDD
Libérer: 2025-01-14 09:46:43
original
775 Les gens l'ont consulté

How to Concatenate Column Values with GROUP BY in SQL?

Utilisez l'instruction GROUP BY de SQL pour joindre les valeurs des colonnes

Supposons que vous ayez un tableau contenant les données suivantes :

<code>ID | 用户 | 活动 | 页面URL
1 | 我 | act1 | ab
2 | 我 | act1 | cd
3 | 你 | act2 | xy
4 | 你 | act2 | st</code>
Copier après la connexion

Vous souhaitez regrouper les données par Utilisateur et Activité et combiner les valeurs de la colonne URL de la page de chaque groupe en une seule virgule- Chaîne séparée. Le résultat souhaité est le suivant :

<code>用户 | 活动 | 页面URL
我 | act1 | ab, cd
你 | act2 | xy, st</code>
Copier après la connexion

Pour réaliser cette jointure à l'aide d'une requête GROUP BY, vous pouvez utiliser la fonction STUFF() avec une sous-requête dans la clause GROUP BY. Voici une répartition détaillée :

<code class="language-sql">SELECT
    [用户], 活动,
    STUFF(
        (SELECT DISTINCT ',' + 页面URL
         FROM 表名称
         WHERE [用户] = a.[用户] AND 活动 = a.活动
         FOR XML PATH (''))
         , 1, 1, '')  AS URL列表
FROM 表名称 AS a
GROUP BY [用户], 活动</code>
Copier après la connexion
  • SELECT : Sélectionnez les colonnes requises : Utilisateur, Activité et URL de la page connectée sous la forme d'une liste de URL .
  • STUFF() : Cette fonction accepte trois paramètres : la chaîne à modifier, la position de départ, le nombre de caractères à supprimer et la chaîne à insérer. Dans ce cas, il supprime le premier caractère (virgule) et insère la valeur Page URL concaténée dans la chaîne modifiée.
  • Sous-requête dans
  • FOR XML PATH(''): Cette sous-requête sélectionne l'unique Utilisateur et Activité 🎜>URL de la page valeur. Il utilise la clause FOR XML PATH('') pour renvoyer une seule chaîne en concaténant les valeurs.
  • a.[Utilisateur] ET activité = a.Activité : Cette section garantit que la sous-requête récupère uniquement les valeurs URL de la page qui appartiennent au groupe en cours de traitement.
  • GROUP BY : Regroupe les données par Utilisateur et Activité pour agréger la valeur URL de la page pour chaque groupe.
En exécutant cette requête, vous obtiendrez le résultat souhaité où les valeurs

URL de la page pour chaque combinaison unique Utilisateur et Activité sont fusionnées ensemble et séparés par des virgules.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal