Heim >Datenbank >MySQL-Tutorial >Wie verkettet man unterschiedliche Werte mithilfe von STRING_AGG in SQL Server?

Wie verkettet man unterschiedliche Werte mithilfe von STRING_AGG in SQL Server?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-24 07:07:08874Durchsuche

How to Concatenate Distinct Values Using STRING_AGG in SQL Server?

Verwenden von String_agg für eine unterschiedliche Wertverkampferung im SQL -Server: Ein praktischer Ansatz

Die String_agg -Funktion des SQL Servers vereinfacht die Verkettung mehrerer Werte in eine einzelne Zeichenfolge. Das direkte Erreichen einer ausgeprägten Wertverkampferung mit String_AGG erfordert jedoch eine Problemumgehung. Dieser Artikel beschreibt einen zweistufigen Prozess zum Zählen und Verkettungswerten mit String_agg, auch mit großen Datensätzen.

.

Die Lösung:

Diese Methode verwendet eine zweistufige Gruppe nach Ansatz:

  1. eliminieren Duplikate: Die erste GROUP BY -Operation beseitigt doppelte Zeilen und stellt sicher, dass nur eindeutige Kombinationen Ihrer angegebenen Spalten berücksichtigt werden.

    <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. Aggregat und verkettet: Das zweite GROUP BY berechnet die eindeutige Anzahl und verkettet die eindeutigen Werte mit 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>

resultierende Ausgabe:

Die Abfrage ergibt eine Tabelle, in der die unterschiedlichen Zählungen und verketteten Werte zusammengefasst sind:

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

Diese effiziente Technik sorgt für eine genaue, unterschiedliche Wertverkleidung und -zählung, selbst wenn es um umfangreiche Datensätze geht. Dieser Ansatz repliziert effektiv die Funktionalität von COUNT(DISTINCT <column>) und liefert gleichzeitig die verkettete Zeichenfolge.

Das obige ist der detaillierte Inhalt vonWie verkettet man unterschiedliche Werte mithilfe von STRING_AGG in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn