Heim >Datenbank >MySQL-Tutorial >Wie aggregiere ich durch Kommas getrennte Werte mithilfe der GROUP BY-Klausel von SQL Server?

Wie aggregiere ich durch Kommas getrennte Werte mithilfe der GROUP BY-Klausel von SQL Server?

Linda Hamilton
Linda HamiltonOriginal
2025-01-10 17:52:43670Durchsuche

How to Aggregate Comma-Separated Values Using SQL Server's GROUP BY Clause?

Verwenden von GROUP BY von SQL Server zum Verketten durch Kommas getrennter Werte

Die GROUP BY-Klausel von SQL Server ist für die Aggregation von Daten auf der Grundlage gemeinsamer Attribute von unschätzbarem Wert. Das Kombinieren mehrerer Werte in einer einzigen durch Kommas getrennten Zeichenfolge erfordert jedoch einen etwas fortgeschritteneren Ansatz. Hier erweist sich die Funktion STUFF als nützlich.

So können Sie mit GROUP BY und STUFF eine durch Kommas getrennte Aggregation erreichen:

<code class="language-sql">SELECT ReportId, Email = 
    STUFF((SELECT ', ' + Email
           FROM your_table b 
           WHERE b.ReportId = a.ReportId 
          FOR XML PATH('')), 1, 2, '')
FROM your_table a
GROUP BY ReportId</code>

Lassen Sie uns diese Abfrage analysieren:

  • Äußeres SELECT: Dies ruft den ReportId und den aggregierten Email-String ab.
  • STUFFFunktion: Dies verkettet E-Mails geschickt und fügt dazwischen ein Komma und ein Leerzeichen ein.
  • Inner SELECT: Diese Unterabfrage ruft alle E-Mails ab, die mit einem bestimmten ReportId verknüpft sind.
  • FOR XML PATH(''): Dadurch wird die Ergebnismenge der inneren Abfrage in eine XML-Zeichenfolge konvertiert und so ein praktisches Format für die Verkettung bereitgestellt.
  • WHERE-Klausel: Dadurch wird sichergestellt, dass die innere Abfrage nur E-Mails auswählt, die mit dem ReportId aus der äußeren Abfrage übereinstimmen.

Das Anwenden dieser Abfrage auf Beispieldaten würde zu folgendem Ergebnis führen:

ReportId Email
1 [email protected], [email protected]
2 [email protected]
3 [email protected], [email protected]

Diese Technik generiert effizient durch Kommas getrennte Listen und vereinfacht so die Handhabung aggregierter Daten.

Das obige ist der detaillierte Inhalt vonWie aggregiere ich durch Kommas getrennte Werte mithilfe der GROUP BY-Klausel von 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