首頁 >資料庫 >mysql教程 >如何在 BigQuery 中逆透視資料?

如何在 BigQuery 中逆透視資料?

Susan Sarandon
Susan Sarandon原創
2024-12-23 03:19:09938瀏覽

How to Unpivot Data in BigQuery?

如何在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn