UNPIVOT 演算子は、分析とクエリを容易にするために、Oracle の行データを列データに変換します。複数の行と列を含むデータ セットを、元の行を表す ID 列と元の列の値を含む値列を含む新しいデータ セットに変換します。 UNPIVOT 構文は、SELECT * FROM UNPIVOT(table_name) AS unpivoted_table[WHERE pivot_condition] です。利点としては、クエリの簡素化、パフォーマンスの向上、ピボットのサポートなどが挙げられます。たとえば、売上四半期データを列に変換して、製品別および四半期ごとの売上を簡単に分析できます。
Oracle での UNPIVOT の使用法
UNPIVOT とは何ですか?
UNPIVOT は、行データを列データに変換するために使用される Oracle 演算子です。複数行、複数列のデータ セットを、ID 列 (元の行を表す) と値列 (元の列の値を含む) の 2 つの列を含む新しいデータ セットに変換します。
UNPIVOT の使用法
UNPIVOT 構文は次のとおりです:
<code>SELECT * FROM UNPIVOT(table_name) [AS unpivoted_table] [FOR column_name IN (column_list)] [WHERE pivot_condition]</code>
その中に:
table_name
は、変換するデータセットの名前です。 column_name
は、列に変換される元の列の名前です。 column_list
は、列に変換される生の列のリストです。 pivot_condition
は、列に変換されるデータをフィルタリングするために使用されるオプションの条件です。 例
次の列を含む sales
という名前のデータ セットがあるとします。
product_id
product_name
sales_q1
sales_q2
sales_q3
sales_q4
売上四半期データを列に変換するには、次の UNPIVOT クエリを使用できます:
<code>SELECT * FROM UNPIVOT(sales) AS unpivoted_sales FOR sales_quarter IN (sales_q1, sales_q2, sales_q3, sales_q4)</code>
結果のデータセットは次のようになります:
product_id | product_name | sales_quarter | sales_value |
---|---|---|---|
製品 A | Q1 | 100 | |
製品 A | Q2 | 200 | |
製品 A | Q3 | 300 | |
製品 A | #Q4 | 400 | |
製品 B | Q1 | 500 | |
製品 B | Q2 | 600 | |
製品 B | Q3 | 700 | |
製品 B | Q4 | 800 |
UNPIVOT を使用すると、次の利点があります。
行データを分析しやすい列データに変換します。以上がOracleでアンピボットを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。