Heim >Datenbank >MySQL-Tutorial >Wie aggregiere ich durch Kommas getrennte Werte mithilfe der GROUP BY-Klausel von SQL Server?
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:
SELECT
: Dies ruft den ReportId
und den aggregierten Email
-String ab.STUFF
Funktion: Dies verkettet E-Mails geschickt und fügt dazwischen ein Komma und ein Leerzeichen ein.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 | |
---|---|
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!