Heim > Datenbank > MySQL-Tutorial > Wie kann ich Spaltenwerte mithilfe der GROUP BY-Klausel von SQL in einer durch Kommas getrennten Liste kombinieren?

Wie kann ich Spaltenwerte mithilfe der GROUP BY-Klausel von SQL in einer durch Kommas getrennten Liste kombinieren?

Linda Hamilton
Freigeben: 2025-01-14 08:07:50
Original
1027 Leute haben es durchsucht

How Can I Combine Column Values into a Comma-Separated List Using SQL's GROUP BY Clause?

Daten mit GROUP BY aggregieren: Durch Kommas getrennte Listen erstellen

Die

-Klausel von GROUP BYSQL eignet sich hervorragend zum Gruppieren von Zeilen basierend auf gemeinsamen Spaltenwerten und zum Anwenden von Aggregatfunktionen. Eine häufige Anwendung besteht darin, Werte aus einer einzelnen Spalte in einer einzigen, durch Kommas getrennten Zeichenfolge für jede Gruppe zu kombinieren.

Lassen Sie uns dies anhand einer Beispieltabelle veranschaulichen:

<code>ID  User  Activity  PageURL  
1  Me    act1      ab     
2  Me    act1      cd     
3  You   act2      xy     
4  You   act2      st</code>
Nach dem Login kopieren

Unser Ziel ist es, nach User und Activity zu gruppieren und die PageURL-Werte für jede Gruppe zu verketten. Die gewünschte Ausgabe:

<code>User  Activity  PageURL  
Me    act1      ab, cd     
You   act2      xy, st</code>
Nach dem Login kopieren

SQL Server-Lösung mit STUFF()

In SQL Server können wir dies mit GROUP BY und der Funktion STUFF() erreichen:

<code class="language-sql">SELECT
    [User], 
    Activity,
    STUFF(
        (SELECT DISTINCT ',' + PageURL
         FROM TableName
         WHERE [User] = a.[User] AND Activity = a.Activity
         FOR XML PATH (''))
        , 1, 1, '') AS URLList
FROM TableName AS a
GROUP BY [User], Activity</code>
Nach dem Login kopieren

Erklärung:

  • GROUP BY [User], Activity: Dies gruppiert die Zeilen basierend auf eindeutigen Kombinationen von User und Activity.
  • Unterabfrage: Die innere SELECT-Anweisung ruft unterschiedliche PageURL-Werte für jede Gruppe ab. Das ',' PageURL fügt vor jeder URL ein Komma ein.
  • FOR XML PATH(''): Dadurch wird die Ergebnismenge in eine einzelne Zeichenfolge konvertiert, wodurch die URLs effektiv mit Kommas verkettet werden.
  • STUFF(..., 1, 1, ''): Dadurch wird das von der Unterabfrage hinzugefügte führende Komma entfernt, was zu einer sauberen, durch Kommas getrennten Liste führt.

Fazit:

Dieser Ansatz kombiniert effektiv Spaltenwerte in durch Kommas getrennten Listen innerhalb jeder Gruppe, die durch die GROUP BY-Klausel definiert wird. Dies ist eine vielseitige Technik zur Datenzusammenfassung und -bearbeitung in SQL Server. Beachten Sie, dass die spezifische Funktion für die Zeichenfolgenverkettung je nach Datenbanksystem (z. B. GROUP_CONCAT in MySQL) leicht variieren kann.

Das obige ist der detaillierte Inhalt vonWie kann ich Spaltenwerte mithilfe der GROUP BY-Klausel von SQL in einer durch Kommas getrennten Liste kombinieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage