如何在BigQuery 中將資料從透視結構轉換為非透視結構
在BigQuery 中,您面臨著轉換資料結構的挑戰將透視表轉換為未透視格式。這涉及將資料轉換為更表格化的表示形式。要實現此目標,請考慮以下步驟:
使用 UNPIVOT 運算子(建議)
BigQuery 現在提供專用的 UNPIVOT 運算子來簡化此轉換。此運算符可讓您指定要旋轉的資料透視列(例如 Q1、Q2、Q3、Q4)以及結果列(例如銷售額、季度)。
SQL 語法:
SELECT product, UNPIVOT(value FOR quarter IN (Q1, Q2, Q3, Q4)) AS sales_quarter FROM pivoted_table
使用巢狀查詢
在引入 UNPIVOT 運算子之前,BigQuery運算子使用者可以使用巢狀查詢實現逆透視:
SQL 語法:
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
範例資料轉換
以下範例將轉換透視表:
product | Q1 | Q2 | Q3 | Q4 ------------------------------- Kale | 51 | 23 | 45 | 3 Apple | 77 | 0 | 25 | 2
轉換為未透視表:
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
以上是如何在 BigQuery 中逆透視資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!