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
Patricia Arquetteoriginal
2025-01-24 07:07:08874parcourir

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>
  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>

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!

Déclaration:
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