首页 >数据库 >mysql教程 >BigQuery 的 UNPIVOT 运算符如何重组表格数据?

BigQuery 的 UNPIVOT 运算符如何重组表格数据?

Patricia Arquette
Patricia Arquette原创
2024-12-20 01:48:09438浏览

How Can BigQuery's UNPIVOT Operator Restructure Tabular Data?

使用 UNPIVOT 运算符在 BigQuery 中转置数据

通常需要将数据从表格结构重新组织为更灵活、更可用的格式。在 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

使用 UNPIVOT 的 SQL 查询:

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;

此查询使用 ARRAY 和 STRUCT 函数创建临时结构数组原始表中的每一行。然后使用 FLATTEN 函数从数组中的每个结构中提取结构字段(销售额和季度)。最后,使用 UNNEST 运算符从 ARRAY 中提取各个值。

生成的表将采用所需的格式,其中包含产品、销售额和季度的列。

以上是BigQuery 的 UNPIVOT 运算符如何重组表格数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn