Heim >Datenbank >MySQL-Tutorial >Wie kann ich Zeilendaten mit dem PIVOT-Operator von Oracle SQL in Spalten umwandeln?
Das Ziel dieser Abfrage besteht darin, nach Zeilen organisierte Daten in Spalten umzuwandeln, wobei jede Spalte einen bestimmten Wert in der Eingabezeile darstellt.
Betrachten Sie das folgende Formular:
月份 | 数值 |
---|---|
1 | 100 |
2 | 200 |
3 | 300 |
4 | 400 |
5 | 500 |
6 | 600 |
Unser Ziel ist es, die Daten so zu schwenken, dass die Ausgabetabelle wie folgt aussieht:
一月 | 二月 | 三月 | 四月 | 五月 | 六月 |
---|---|---|---|---|---|
100 | 200 | 300 | 400 | 500 | 600 |
Ab Oracle 11g bietet der PIVOT-Operator eine einfache Möglichkeit, dies zu tun:
<code class="language-sql">CREATE TABLE tq84_pivot ( month NUMBER, value NUMBER ); INSERT INTO tq84_pivot VALUES(1, 100); INSERT INTO tq84_pivot VALUES(2, 200); INSERT INTO tq84_pivot VALUES(3, 300); INSERT INTO tq84_pivot VALUES(4, 400); INSERT INTO tq84_pivot VALUES(5, 500); INSERT INTO tq84_pivot VALUES(6, 600); -- 插入额外的行以进行演示 INSERT INTO tq84_pivot VALUES(1, 400); INSERT INTO tq84_pivot VALUES(2, 350); INSERT INTO tq84_pivot VALUES(4, 150); SELECT * FROM tq84_pivot PIVOT ( SUM (value) AS sum_value FOR (month) IN (1 AS month_jan, 2 AS month_feb, 3 AS month_mar, 4 AS month_apr, 5 AS month_mai, 6 AS month_jun, 7 AS month_jul, 8 AS month_aug, 9 AS month_sep, 10 AS month_oct, 11 AS month_nov, 12 AS month_dec) );</code>
Diese Abfrage verwendet den PIVOT-Operator mit einer „FOR“-Klausel, um die Pivot-Spalte und die zugehörigen Werte anzugeben. Indem wir die Daten nach der Spalte „Monat“ gruppieren und die Spalte „Wert“ mit SUM() aggregieren, erhalten wir die gewünschte Ausgabe, bei der jeder Monat seinen entsprechenden Wert hat.
Das obige ist der detaillierte Inhalt vonWie kann ich Zeilendaten mit dem PIVOT-Operator von Oracle SQL in Spalten umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!