通常需要將資料從表格結構重新組織為更靈活、更可用的格式。在 BigQuery 中,UNPIVOT 運算子為這種轉換提供了強大的解決方案。
請考慮以下範例:
原始表格結構:
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 |
想要的桌子結構:
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;
使用UNPIVOT 的SQL查詢:
此查詢使用 ARRAY 和 STRUCT 函數建立臨時結構數組原始表中的每一行。然後使用 FLATTEN 函數從數組中的每個結構中提取結構字段(銷售額和季度)。最後,使用 UNNEST 運算子從 ARRAY 中提取各個值。 產生的表格將採用所需的格式,其中包含產品、銷售額和季度的欄位。以上是BigQuery 的 UNPIVOT 運算子如何重組表格資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!