Maison > base de données > tutoriel mysql > Comment concaténer des valeurs distinctes à l'aide de STRING_AGG dans SQL Server ?

Comment concaténer des valeurs distinctes à l'aide de STRING_AGG dans SQL Server ?

Patricia Arquette
Libérer: 2025-01-24 07:07:08
original
873 Les gens l'ont consulté

How to Concatenate Distinct Values Using STRING_AGG in SQL Server?

Utiliser STRING_AGG pour la concaténation de valeurs distinctes dans SQL Server : une approche pratique

La fonction STRING_AGG de SQL Server simplifie la concaténation de plusieurs valeurs en une seule chaîne. Cependant, réaliser directement une concaténation de valeurs distinctes avec STRING_AGG nécessite une solution de contournement. Cet article décrit un processus en deux étapes pour compter et concaténer des valeurs distinctes à l'aide de STRING_AGG, même avec de grands ensembles de données.

La solution :

Cette méthode utilise une approche GROUP BY en deux étapes :

  1. Éliminer les doublons : La première GROUP BY opération supprime les lignes en double, garantissant que seules les combinaisons uniques de vos colonnes spécifiées sont prises en compte.

    <code class="language-sql">WITH Sitings AS (
     SELECT * FROM (VALUES
         (1, 'Florida', 'Orlando', 'bird'),
         (2, 'Florida', 'Orlando', 'dog'),
         (3, 'Arizona', 'Phoenix', 'bird'),
         (4, 'Arizona', 'Phoenix', 'dog'),
         (5, 'Arizona', 'Phoenix', 'bird'),
         (6, 'Arizona', 'Phoenix', 'bird'),
         (7, 'Arizona', 'Phoenix', 'bird'),
         (8, 'Arizona', 'Flagstaff', 'dog')
     ) F (ID, State, City, Siting)
    )</code>
    Copier après la connexion
  2. Agréger et concaténer : Le second GROUP BY calcule le nombre distinct et concatène les valeurs uniques à l'aide de STRING_AGG.

    <code class="language-sql">SELECT
     State,
     City,
     COUNT(1) AS [# Of Sitings],
     STRING_AGG(Siting, ',') AS Animals
    FROM (
     SELECT DISTINCT
         State,
         City,
         Siting
     FROM Sitings
    ) AS CTE_Animals
    GROUP BY
     State,
     City;</code>
    Copier après la connexion

Résultat :

La requête renvoie un tableau résumant les décomptes distincts et les valeurs concaténées :

State City # Of Sitings Animals
Arizona Flagstaff 1 dog
Arizona Phoenix 2 bird,dog
Florida Orlando 2 bird,dog

Cette technique efficace garantit une concaténation et un comptage précis des valeurs distinctes, même lorsqu'il s'agit d'ensembles de données étendus. Cette approche reproduit efficacement la fonctionnalité de COUNT(DISTINCT <column>) tout en fournissant également la chaîne concaténée.

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