Generieren von durch Kommas getrennten aggregierten Daten in SQL mit GROUP BY
Diese Anleitung erklärt, wie Sie Daten in SQL effizient aggregieren und die Ergebnisse als durch Kommas getrennte Listen ausgeben, die nach einer bestimmten Spalte gruppiert sind. Dies ist eine häufige SQL-Aufgabe mit mehreren Lösungen.
Die Herausforderung
Stellen Sie sich eine Tabelle vor, die so aufgebaut ist:
ID | Value |
---|---|
1 | a |
1 | b |
2 | c |
Ziel ist es, diese Daten zu konsolidieren, nach der Spalte ID
zu gruppieren und die entsprechenden Value
-Einträge in einer einzigen durch Kommas getrennten Zeichenfolge für jede Gruppe zu verketten.
Die Lösung: Nutzung von FOR XML PATH
Eine leistungsstarke und prägnante Methode nutzt das FOR XML PATH
-Konstrukt:
<code class="language-sql">SELECT ID, STUFF((SELECT ', ' + Value FROM YourTable t2 WHERE t1.ID = t2.ID FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS Values FROM YourTable t1 GROUP BY ID;</code>
Diese Abfrage verwendet eine Unterabfrage mit FOR XML PATH('')
, um eine XML-Darstellung der verketteten Werte zu generieren. Die Methode .value('.', 'NVARCHAR(MAX)')
extrahiert dies als String. Schließlich entfernt STUFF
das führende Komma und das Leerzeichen.
Weitere Erkundung
Fortgeschrittenere Szenarien und alternative Ansätze finden Sie in den folgenden Ressourcen:
Durch die Verwendung der FOR XML PATH
-Methode oder die Erkundung anderer SQL-Techniken können Sie Ihre Daten effektiv aggregieren und in einem benutzerfreundlichen, durch Kommas getrennten Format darstellen.
Das obige ist der detaillierte Inhalt vonWie rufe ich durch Kommas getrennte aggregierte SQL-Ergebnisse mithilfe von GROUP BY ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!