ホームページ > データベース > mysql チュートリアル > Oracle SQLのPIVOT演算子を使用して行データを列にピボットする方法

Oracle SQLのPIVOT演算子を使用して行データを列にピボットする方法

Mary-Kate Olsen
リリース: 2025-01-23 07:41:10
オリジナル
349 人が閲覧しました

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

Oracle SQL ピボット クエリ

このクエリの目的は、行構成されたデータを列に変換することです。各列は入力行の特定の値を表します。

次の形式を考えてみましょう:

月份 数值
1 100
2 200
3 300
4 400
5 500
6 600

私たちの目標は、出力テーブルが次のようになるようにデータをピボットすることです:

一月 二月 三月 四月 五月 六月
100 200 300 400 500 600

Oracle 11g 以降

Oracle 11g 以降、PIVOT 演算子はこれを行うための簡単な方法を提供します。

<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>
ログイン後にコピー

このクエリは、「FOR」句を持つ PIVOT 演算子を使用して、ピボット列と関連する値を指定します。データを「月」列でグループ化し、SUM() を使用して「値」列を集計すると、各月に対応する値が含まれる目的の出力が得られます。

以上がOracle SQLのPIVOT演算子を使用して行データを列にピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート