Heim > Datenbank > MySQL-Tutorial > Wie kombiniere ich GROUP_CONCAT und CONCAT für die komplexe Datenaggregation in MySQL?

Wie kombiniere ich GROUP_CONCAT und CONCAT für die komplexe Datenaggregation in MySQL?

DDD
Freigeben: 2024-12-17 21:11:11
Original
861 Leute haben es durchsucht

How to Combine GROUP_CONCAT and CONCAT for Complex Data Aggregation in MySQL?

So verwenden Sie GROUP_CONCAT in einem CONCAT in MySQL

In bestimmten Szenarien kann es erforderlich sein, in einer MySQL-Tabelle gespeicherte Daten zu transformieren in ein bestimmtes Format umwandeln. Angenommen, Sie haben eine Tabelle mit Daten wie diesen:

id Name Value
1 A 4
1 A 5
1 B 8
2 C 9

Ihr Ziel ist es, die folgenden Ergebnisse zu erhalten:

id Column
1 A:4,5,B:8
2 C:9

Um diese Transformation zu erreichen, müssen Sie Folgendes tun Verwenden Sie die Funktion GROUP_CONCAT(). Diese Funktion zeichnet sich durch ihre Fähigkeit aus, Werte aus mehreren Zeilen zu verketten, die nach bestimmten Kriterien gruppiert sind.

Zu Beginn müssen Sie eine Unterabfrage generieren, die die nach ID und Name gruppierten Werte verkettet. Das folgende Code-Snippet veranschaulicht diesen Schritt:

select id, 
concat(`Name`, ':', group_concat(`Value` separator ',')) as Name
from mytbl group by id, Name
Nach dem Login kopieren

Die resultierende Unterabfrage erstellt eine neue Spalte mit dem Namen „Name“, die alle durch Doppelpunkte und Kommas verketteten Werte enthält, gruppiert nach ID und Name.

| id | Name |
| --- | ---- |
| 1 | A:4,5 |
| 1 | B:8 |
| 2 | C:9 |
Nach dem Login kopieren

Zuletzt wenden Sie GROUP_CONCAT() noch einmal auf die äußerste Abfrage an, diesmal mit der ID als Gruppierungskriterium. In diesem Schritt werden die durch Kommas getrennten Namenswerte aus der Unterabfrage verkettet:

select id, group_concat(`Name` separator ',') as `ColumnName`
from
(
  select id, 
  concat(`Name`, ':', group_concat(`Value` separator ',')) as Name
   from mytbl group by id, Name
) tbl
group by id;
Nach dem Login kopieren

Das Ergebnis wird genau wie gewünscht sein:

| id | Column |
| --- | ----- |
| 1 | A:4,5,B:8 |
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kombiniere ich GROUP_CONCAT und CONCAT für die komplexe Datenaggregation in MySQL?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage