Rumah >pangkalan data >tutorial mysql >Bagaimanakah Operator UNPIVOT BigQuery Boleh Menstruktur Semula Data Jadual?
Menyusun semula data daripada struktur jadual kepada format yang lebih fleksibel dan boleh digunakan selalunya diperlukan. Dalam BigQuery, pengendali UNPIVOT menyediakan penyelesaian yang berkuasa untuk transformasi ini.
Pertimbangkan contoh berikut:
Struktur Jadual Asal:
product | Q1 | Q2 | Q3 | Q4 |
---|---|---|---|---|
Kale | 51 | 23 | 45 | 3 |
Apple | 77 | 0 | 25 | 2 |
Meja yang Diingini Struktur:
product | sales | quarter |
---|---|---|
Kale | 51 | Q1 |
Kale | 23 | Q2 |
Kale | 45 | Q3 |
Kale | 3 | Q4 |
Apple | 77 | Q1 |
Apple | 0 | Q2 |
Apple | 25 | Q3 |
Apple | 2 | Q4 |
Pertanyaan SQL Menggunakan UNPIVOT:
SELECT product, value AS sales, OFFSET AS quarter FROM UNNEST(FLATTEN( ARRAY( STRUCT('Q1' AS OFFSET, Q1 AS value), STRUCT('Q2' AS OFFSET, Q2 AS value), STRUCT('Q3' AS OFFSET, Q3 AS value), STRUCT('Q4' AS OFFSET, Q4 AS value) ) )) AS UNNESTED ORDER BY product, quarter;
Pertanyaan ini menggunakan fungsi ARRAY dan STRUCT untuk mencipta tatasusunan sementara struct untuk setiap baris dalam jadual asal. Fungsi FLATTEN kemudiannya digunakan untuk mengekstrak medan struct (jualan dan suku) daripada setiap struct dalam tatasusunan. Akhir sekali, operator UNNEST digunakan untuk mengekstrak nilai individu daripada ARRAY.
Jadual yang terhasil akan berada dalam format yang diingini, dengan lajur untuk produk, jualan dan suku tahun.
Atas ialah kandungan terperinci Bagaimanakah Operator UNPIVOT BigQuery Boleh Menstruktur Semula Data Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!