eine Tabelle mit drei Spalten in eine Datenperspektivtabelle umwandeln, in der die Linie in Spalten umgewandelt wird.
Beispiel:
Eingangstabelle:
Die erforderliche Ausgabe (Datenperspektivtabelle):
hostid | itemname | itemvalue |
---|---|---|
1 | A | 10 |
1 | B | 3 |
2 | A | 9 |
2 | C | 40 |
Die Datenperspektivfunktion von
hostid | A | B | C |
---|---|---|---|
1 | 10 | 3 | 0 |
2 | 9 | 0 | 40 |
Interessierte Spalten auswählen:
SELECT hostid, itemname, itemvalue FROM history;
Gruppieren im HostID und der Summe des Wertes jeder Spalte.
CREATE VIEW history_extended AS ( SELECT history.*, CASE WHEN itemname = "A" THEN itemvalue END AS A, CASE WHEN itemname = "B" THEN itemvalue END AS B, CASE WHEN itemname = "C" THEN itemvalue END AS C FROM history );
<事> Hinweis und Einschränkungen:
CREATE VIEW history_itemvalue_pivot AS ( SELECT hostid, SUM(A) AS A, SUM(B) AS B, SUM(C) AS C FROM history_extended GROUP BY hostid );
CREATE VIEW history_itemvalue_pivot_pretty AS ( SELECT hostid, COALESCE(A, 0) AS A, COALESCE(B, 0) AS B, COALESCE(C, 0) AS C FROM history_itemvalue_pivot );
Das obige ist der detaillierte Inhalt vonSo drehen Sie eine Tabelle in MySQL: Zeilen in Spalten umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!