Operator UNPIVOT menukar data baris dalam Oracle kepada data lajur untuk analisis dan pertanyaan yang lebih mudah. Ia menukar set data yang mengandungi berbilang baris dan lajur kepada set data baharu dengan lajur ID yang mewakili baris asal dan lajur nilai yang mengandungi nilai daripada lajur asal. Sintaks UNPIVOT ialah: SELECT * FROM UNPIVOT(table_name) AS unpivoted_table[WHERE pivot_condition]. Faedah termasuk pertanyaan yang dipermudahkan, prestasi yang dipertingkatkan dan sokongan untuk berputar. Contohnya, anda boleh menukar data suku tahun jualan kepada lajur untuk menganalisis jualan mengikut produk dan suku tahun dengan mudah.
UNPIVOT penggunaan dalam Oracle
Apakah itu UNPIVOT?
UNPIVOT ialah operator Oracle yang digunakan untuk menukar data baris kepada data lajur. Ia mengubah set data berbilang baris, berbilang lajur kepada set data baharu dengan dua lajur: lajur ID (mewakili baris asal) dan lajur nilai (mengandungi nilai daripada lajur asal).
Penggunaan UNPIVOT
Sintaks UNPIVOT adalah seperti berikut:
<code>SELECT * FROM UNPIVOT(table_name) [AS unpivoted_table] [FOR column_name IN (column_list)] [WHERE pivot_condition]</code>
di mana:
table_name
是要转换的数据集的名称。column_name
是要转换为列的原始列的名称。column_list
是要转换为列的原始列的列表。pivot_condition
是可选的条件,用于过滤要转换为列的数据。示例
假设有一个名为 sales
的数据集,其中包含以下列:
product_id
product_name
sales_q1
sales_q2
sales_q3
sales_q4
column_list
ialah senarai lajur mentah untuk ditukar kepada lajur.
Andaikan terdapat set data bernama |
|||
---|---|---|---|
sales_q3 |
sales_q4 |
Untuk menukar data suku jualan bagi lajur, anda boleh menggunakan pertanyaan UNPIVOT berikut: | <code>SELECT * FROM UNPIVOT(sales) AS unpivoted_sales FOR sales_quarter IN (sales_q1, sales_q2, sales_q3, sales_q4)</code> Salin selepas log masuk | Dataset yang terhasil akan kelihatan seperti ini:
product_id | product_name | sales_quarter1 | |
sales_value | Produk A | ||
100 | 1 | Produk A | |
200 | 1 | Produk A | |
Produk A | Q4 | 400 | |
2 | Produk B | Q1 | 500 |
Produk B
Q2600Atas ialah kandungan terperinci Cara menggunakan unpivot dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!