Cara Mengubah Data daripada Struktur Dipangsi kepada Struktur Tidak Dipangsi dalam BigQuery
Dalam BigQuery, anda dihadapkan dengan cabaran untuk mengubah jadual berpivot ke dalam format tidak berpivot. Ini melibatkan pemindahan data kepada perwakilan yang lebih jadual. Untuk mencapai matlamat ini, pertimbangkan langkah berikut:
Menggunakan Operator UNPIVOT (Disyorkan)
BigQuery kini menawarkan pengendali UNPIVOT khusus yang memudahkan transformasi ini. Operator ini membenarkan anda untuk menentukan lajur pangsi untuk diputar (cth., Q1, Q2, Q3, Q4) dan lajur yang terhasil (cth., jualan, suku).
SQL Syntax:
SELECT product, UNPIVOT(value FOR quarter IN (Q1, Q2, Q3, Q4)) AS sales_quarter FROM pivoted_table
Menggunakan Nested Pertanyaan
Sebelum pengenalan pengendali UNPIVOT, pengguna BigQuery boleh mencapai unpivoting menggunakan pertanyaan bersarang:
SQL Syntax:
SELECT product, (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q1 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q1, (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q2 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q2, (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q3 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q3, (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q4 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q4 FROM pivoted_table
Contoh Data Penukaran
Contoh berikut akan menukar jadual terpivot:
product | Q1 | Q2 | Q3 | Q4 ------------------------------- Kale | 51 | 23 | 45 | 3 Apple | 77 | 0 | 25 | 2
Ke dalam jadual tidak berpivot:
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
Atas ialah kandungan terperinci Bagaimana untuk Nyahpaut Data dalam BigQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!