Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich durch Kommas getrennte Listen in DB2 nach Gruppen?

Wie erstelle ich durch Kommas getrennte Listen in DB2 nach Gruppen?

Barbara Streisand
Freigeben: 2025-01-09 14:41:43
Original
131 Leute haben es durchsucht

How to Generate Comma-Separated Lists in DB2 by Group?

Generieren von durch Kommas getrennten Listen in DB2 mit LISTAGG

Diese Anleitung zeigt, wie Sie durch Kommas getrennte Listen von Spaltenwerten erstellen, die nach einer anderen Spalte in DB2 gruppiert sind. Die LISTAGG-Funktion ist der Schlüssel zum Erreichen dieses Ziels.

Szenario:

Stellen Sie sich eine Tabelle mit den Spalten ID und Role vor, wobei jede ID mehrere Roles haben kann. Das Ziel besteht darin, für jede eindeutige ID eine durch Kommas getrennte Liste von Rollen auszugeben.

Beispieldaten:

ID Role
4555 2
4555 3
4555 4

Gewünschte Ausgabe:

<code>4555, 2,3,4</code>
Nach dem Login kopieren

Lösung mit LISTAGG:

Die LISTAGG-Funktion von DB2 verkettet Werte innerhalb einer Gruppe effizient. Die Syntax lautet:

<code class="language-sql">LISTAGG(column_name, delimiter) WITHIN GROUP (ORDER BY column_name) OVER (PARTITION BY group_column)</code>
Nach dem Login kopieren

Beispielabfrage:

Verwenden wir eine Beispieltabelle mit dem Namen myTable mit den Spalten id und category:

<code class="language-sql">CREATE TABLE myTable (id INT, category INT);

INSERT INTO myTable VALUES (1, 1);
INSERT INTO myTable VALUES (2, 2);
INSERT INTO myTable VALUES (5, 1);
INSERT INTO myTable VALUES (3, 1);
INSERT INTO myTable VALUES (4, 2);</code>
Nach dem Login kopieren

Um durch Kommas getrennte id Werte für jedes category zu erhalten:

<code class="language-sql">SELECT
  category,
  LISTAGG(id, ', ') WITHIN GROUP (ORDER BY id ASC) AS ids
FROM myTable
GROUP BY category;</code>
Nach dem Login kopieren

Ergebnis:

<code>CATEGORY | IDS
---------+-----
       1 | 1, 3, 5
       2 | 2, 4</code>
Nach dem Login kopieren

Diese Abfrage gruppiert Zeilen nach category, ordnet die id-Werte innerhalb jeder Gruppe und verwendet dann LISTAGG, um sie zu einer einzigen durch Kommas getrennten Zeichenfolge zu verketten. Das Ergebnis zeigt die durch Kommas getrennte Liste der IDs für jede Kategorie. Dieser Ansatz löst effektiv das Problem der Generierung durch Kommas getrennter Listen basierend auf der Gruppierung in DB2.

Das obige ist der detaillierte Inhalt vonWie erstelle ich durch Kommas getrennte Listen in DB2 nach Gruppen?. 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