Heim >Datenbank >MySQL-Tutorial >Wie transformiere ich MySQL-Spaltendaten in eine zeilenbasierte Pivot-Tabelle?
Konvertieren Sie MySQL-Spaltendaten in das Zeilenformat (Pivot-Tabelle)
In diesem Artikel wird beschrieben, wie Sie eine MySQL-Tabelle mit mehrspaltigen Daten in Daten im Zeilen- und Spaltenformat konvertieren. Die resultierende Struktur wird als Pivot-Tabelle bezeichnet und bietet eine prägnante und dennoch umfassende Ansicht der Daten.
Problemstellung:
Wir haben eine Tabelle mit mehreren Spalten. Jede Spalte stellt eine Datenkategorie dar. Unser Ziel ist es, sie in ein Pivot-Tabellenformat umzuwandeln, in dem die Zeilen Kategorien darstellen (Spalte 1, Spalte 2, Spalte 3, Spalte 4) und die Spalten Monate darstellen ( Jan., Feb.).
Lösungsrahmen:
Um diese Konvertierung in MySQL zu implementieren, müssen wir den folgenden zweistufigen Prozess befolgen:
Anti-Perspektive (UNION ALL):
Perspektive (Aggregation und CASE):
Implementierte Abfragen:
Anti-Perspektive (UNION ALL):
<code class="language-sql">SELECT id, month, col1 AS value, 'col1' AS descrip FROM yourtable UNION ALL SELECT id, month, col2 AS value, 'col2' AS descrip FROM yourtable UNION ALL SELECT id, month, col3 AS value, 'col3' AS descrip FROM yourtable UNION ALL SELECT id, month, col4 AS value, 'col4' AS descrip FROM yourtable;</code>
Perspektive (Aggregation und CASE):
<code class="language-sql">SELECT descrip, MAX(CASE WHEN month = 'Jan' THEN value ELSE 0 END) AS Jan, MAX(CASE WHEN month = 'Feb' THEN value ELSE 0 END) AS Feb FROM ( SELECT id, month, col1 AS value, 'col1' AS descrip FROM yourtable UNION ALL SELECT id, month, col2 AS value, 'col2' AS descrip FROM yourtable UNION ALL SELECT id, month, col3 AS value, 'col3' AS descrip FROM yourtable UNION ALL SELECT id, month, col4 AS value, 'col4' AS descrip FROM yourtable ) AS source GROUP BY descrip;</code>
Ergebnis:
Diese Abfrage konvertiert die Eingabetabelle in das Pivot-Tabellenformat:
DESCRIP | Jan | Feb |
---|---|---|
col1 | A | C |
col2 | B | A |
col3 | 0 | G |
col4 | B | E |
Das obige ist der detaillierte Inhalt vonWie transformiere ich MySQL-Spaltendaten in eine zeilenbasierte Pivot-Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!