Andaikan anda mempunyai jadual yang mengandungi data berangka yang disusun mengikut bulan:
<code>MONTH | VALUE -------|------ 1 | 100 2 | 200 3 | 300 ...</code>
Matlamatnya adalah untuk menukar data ini kepada format pangsi untuk melihat nilai bulanan dengan lebih visual:
<code>MONTH_JAN | MONTH_FEB | MONTH_MAR | ... ---------|---------|---------| 100 | 200 | 300 | ...</code>
Oracle 11g dan kemudiannya memperkenalkan pengendali PIVOT, yang membolehkan data berputar dengan mudah. Sintaksnya adalah seperti berikut:
<code>SELECT * FROM table_name PIVOT ( aggregate_function(column_name) FOR (pivot_column) IN (list_of_values) );</code>
Pertimbangkan contoh data berikut:
<code>CREATE TABLE tq84_pivot ( month NUMBER, value NUMBER ); INSERT INTO tq84_pivot VALUES (1, 100), (2, 200), (3, 300), (4, 400), (5, 500), (6, 600); 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>
Hasilnya seperti yang dijangkakan:
<code>MONTH_JAN | MONTH_FEB | MONTH_MAR | ... ---------|---------|---------| 100 | 200 | 300 | ...</code>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Data Bulanan Rata dalam Oracle SQL untuk Analisis Lebih Mudah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!