Heim >Datenbank >MySQL-Tutorial >Wie kann ich Zeilendaten mit dem PIVOT-Operator von Oracle SQL in Spalten umwandeln?

Wie kann ich Zeilendaten mit dem PIVOT-Operator von Oracle SQL in Spalten umwandeln?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-23 07:41:10382Durchsuche

How to Pivot Row Data into Columns Using Oracle SQL's PIVOT Operator?

Oracle SQL Pivot-Abfrage

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

Oracle 11g und höher

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn