OracleでのUNPIVOTの使い方は何ですか?
Oracleにおいて、UNPIVOTは列を行に変換する操作の一つです。1列の値を複数の行に変換し、それらの値を他の列の値と関連付けることができます。
UNPIVOT操作の基本的な構文は以下のようになります:
SELECT <columns to keep>,
<unpivot column name>,
<unpivot column value>
FROM <table>
UNPIVOT INCLUDE NULLS
(<unpivot column value>
FOR <unpivot column name>
IN (<column1>, <column2>, ..., <columnN>)
)
中には:
- は残しておく他の列の名前です。
- は、元の列の名前を格納するために使用される新しく生成された列の名前です。
- は、元の列の値を格納するために使用される、新しく生成された列の名前です。
- テーブルの名前は、UNPIVOT操作を実行する対象です。
- 、、…、は、UNPIVOT操作を行う列の名前です。
こちらは例です。
“sales”という表があり、”product”、”region”、”Q1″、”Q2″、”Q3″、”Q4″の列が含まれており、それぞれ異なる製品の四半期ごとの地域別売上高を表しています。これらの列をUNPIVOT操作を使用してより分析しやすい形式に変換することができます。
SELECT product, region, quarter, sales
FROM sales
UNPIVOT INCLUDE NULLS
(sales
FOR quarter
IN (Q1, Q2, Q3, Q4)
)
この検索では、各行が1つの製品の1つの地域での四半期ごとの売上高を表す結果セットが生成されます。
UNPIVOT操作は、通常、分析およびレポート作成に使用され、列を行に変換する必要があるデータ変換操作にも使用されます。