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 ?

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 ?

Mary-Kate Olsen
Libérer: 2025-01-14 06:01:44
original
476 Les gens l'ont consulté

How Can I Combine Page URLs into a Single Comma-Separated String Based on User and Activity Using SQL's GROUP BY?

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>
Copier après la connexion

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>
Copier après la connexion

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal