Heim >Datenbank >MySQL-Tutorial >Wie transponiere ich Zeilen in Spalten in DB2?
Bei der Arbeit mit Daten in einer Datenbank kann es notwendig sein, Zeilen zu transponieren, also die Zeilen und Spalten umzudrehen. Dies kann für Datenanalysen, Berichte und andere Zwecke nützlich sein.
Wenn Sie eine DB2-Tabelle mit Zeilen haben, die Sie in Spalten umwandeln möchten, können Sie mehrere Methoden verwenden. Ein Ansatz besteht darin, korrelierte Unterabfragen zu verwenden, was für kleine Datensätze effizient sein kann.
SELECT A.ItemID, MAX(CASE WHEN A.Item = 'Meeting' THEN Value END) AS Meeting, MAX(CASE WHEN A.Item = 'Advise' THEN Value END) AS Advise, MAX(CASE WHEN A.Item = 'NoAdvise' THEN Value END) AS NoAdvise FROM A GROUP BY A.ItemID
Diese Abfrage verwendet korrelierte Unterabfragen, um den Maximalwert für jedes Element in jeder Zeile zu ermitteln. Die Funktion MAX() wird verwendet, um die Werte zu aggregieren, und die CASE-Anweisung wird verwendet, um zu bestimmen, welcher Spalte der Wert zugewiesen werden soll.
Eine andere Methode zum Transponieren von Zeilen in Spalten ist die Verwendung einer Kombination aus Aggregation und Pivot Funktionen. Dieser Ansatz kann für große Datensätze effizienter sein, da er eine einzige SQL-Anweisung zum Durchführen der Transposition verwendet.
SELECT ItemID, MAX(CASE WHEN Item = 'Meeting' THEN Value END) AS Meeting, MAX(CASE WHEN Item = 'Advise' THEN Value END) AS Advise, MAX(CASE WHEN Item = 'NoAdvise' THEN Value END) AS NoAdvise FROM ( SELECT ItemID, Item, Value FROM TableName ) AS t GROUP BY ItemID PIVOT (MAX(Value) FOR Item IN ('Meeting', 'Advise', 'NoAdvise'))
Diese Abfrage verwendet die PIVOT()-Funktion, um die Daten zu transponieren. Die PIVOT()-Funktion benötigt zwei Argumente: die Spalte, auf die geschwenkt werden soll (in diesem Fall „Item“), und die Liste der Werte, die in die neuen Spalten aufgenommen werden sollen (in diesem Fall „Meeting“, „Advise“ und „NoAdvise“).
Das obige ist der detaillierte Inhalt vonWie transponiere ich Zeilen in Spalten in DB2?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!