Heim >Datenbank >MySQL-Tutorial >Wie kann ich Zeilen effizient in Spalten in MySQL konvertieren?
Detaillierte Erläuterung der MySQL-Zeilen-zu-Spalten-Konvertierung
In MySQL erfordert das Konvertieren von Zeilen in einer Tabelle in Spalten Schritte.
Schritt 1: Bestimmen Sie die X- und Y-Werte
Identifizieren Sie zunächst die Spalten, aus denen die X-Werte (Spaltenüberschriften) und Y-Werte (Zeilen) der Pivot-Tabelle bestehen. In diesem Beispiel ist hostid der Y-Wert und itemname der X-Wert.
Schritt 2: Zusätzliche Spalten hinzufügen
Fügen Sie für jeden X-Wert eine neue Spalte hinzu, die den entsprechenden Wert enthält. Verwenden Sie beispielsweise für die X-Werte A, B und C die CASE-Anweisung, um die Spalten A, B und C wie folgt hinzuzufügen:
<code class="language-sql">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;</code>
Schritt 3: Gruppierung und Aggregation
Gruppieren Sie die erweiterte Tabelle nach der Y-Wertspalte (in diesem Fall Host-ID) und aggregieren Sie die neue Spalte mithilfe einer Aggregatfunktion wie SUM.
<code class="language-sql">SELECT hostid, SUM(A) AS A, SUM(B) AS B, SUM(C) AS C FROM history_extended GROUP BY hostid;</code>
Schritt 4: Verschönern (optional)
Falls gewünscht, kann jeder NULL-Wert durch einen neutralen Wert (z. B. 0) ersetzt werden, um die Tabelle besser lesbar zu machen:
<code class="language-sql">SELECT hostid, COALESCE(A, 0) AS A, COALESCE(B, 0) AS B, COALESCE(C, 0) AS C FROM history_itemvalue_pivot;</code>
Andere Hinweise
Das obige ist der detaillierte Inhalt vonWie kann ich Zeilen effizient in Spalten in MySQL konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!