Maison >base de données >tutoriel mysql >Comment puis-je combiner les URL de pages en une seule chaîne séparée par des virgules en fonction de l'utilisateur et de l'activité à l'aide du GROUP BY de SQL ?
Agrégation des URL de pages avec GROUP BY de SQL
Votre table de base de données comprend les colonnes User
, Activity
et PageURL
. L'objectif est de consolider les entrées PageURL
pour chaque combinaison unique User
et Activity
en une seule chaîne séparée par des virgules.
Ceci peut être réalisé en utilisant GROUP BY
en conjonction avec des techniques d'agrégation de chaînes. Voici comment :
<code class="language-sql">SELECT User, Activity, STRING_AGG(PageURL, ',') AS CombinedPageURLs FROM TableName GROUP BY User, Activity;</code>
Cette requête utilise directement la fonction STRING_AGG
(disponible dans de nombreux dialectes SQL modernes comme PostgreSQL, SQL Server 2017 et versions ultérieures, etc.) pour concaténer les valeurs PageURL
au sein de chaque groupe défini par User
et Activity
. La chaîne résultante séparée par des virgules est affectée à la colonne CombinedPageURLs
.
Alternative pour les dialectes SQL sans STRING_AGG :
Si votre base de données SQL ne prend pas en charge STRING_AGG
, vous pouvez utiliser une approche similaire en utilisant FOR XML PATH
:
<code class="language-sql">SELECT User, Activity, STUFF(( SELECT ',' + PageURL FROM TableName t2 WHERE t2.User = t1.User AND t2.Activity = t1.Activity FOR XML PATH('') ), 1, 1, '') AS CombinedPageURLs FROM TableName t1 GROUP BY User, Activity;</code>
Cette alternative utilise une sous-requête avec FOR XML PATH('')
pour créer la chaîne séparée par des virgules, et STUFF
supprime la virgule de début. Cette méthode est compatible avec les anciennes versions de SQL Server. N'oubliez pas d'adapter les noms de tables et de colonnes pour qu'ils correspondent à votre schéma de base de données spécifique. Le résultat fournit une colonne CombinedPageURLs
contenant les URL agrégé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!