ホームページ >データベース >mysql チュートリアル >データ変換にOracle SQLのPIVOT演算子を使用する方法は?

データ変換にOracle SQLのPIVOT演算子を使用する方法は?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-23 07:26:09805ブラウズ

How to Use Oracle SQL's PIVOT Operator for Data Transformation?

Oracle SQL のピボット クエリ

ピボット クエリを使用すると、データを従来の列形式から行形式に変換できるため、さまざまなカテゴリにわたるデータの分析と比較が容易になります。

ピボット クエリの作成

Oracle SQL でピボット クエリを作成するには、PIVOT 演算子を使用できます。この演算子では、ピボットするデータ、集計関数 (SUM、COUNT、AVG など)、およびピボットの基準となるカテゴリ値を指定する必要があります。

データとクエリの例

tq84_pivot テーブルの次のデータ例を考えてみましょう:

<code>MONTH | VALUE
-------+-----------
1      | 100
2      | 200
3      | 300
4      | 400
5      | 500
6      | 600</code>

月のカテゴリを中心にデータをピボットし、VALUE 列を合計するには、次のクエリを使用できます:

<code class="language-sql">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)
);</code>

出力結果

このクエリは次の出力を返します:

<code>MONTH_JAN | MONTH_FEB | MONTH_MAR | MONTH_APR | MONTH_MAI | MONTH_JUN
--------+--------+--------+--------+--------+--------
100      | 200      | 300      | 400      | 500      | 600</code>

Oracle 11g 以降

Oracle 11g では PIVOT 演算子が導入されており、より簡潔な方法でピボット クエリを作成できるようになります。同じサンプル データの場合、クエリは次のように簡略化できます:

<code class="language-sql">SELECT
  MONTH_JAN, MONTH_FEB, MONTH_MAR, MONTH_APR, MONTH_MAI, MONTH_JUN
FROM
  tq84_pivot
PIVOT (
  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)
);</code>

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。