首页 >数据库 >mysql教程 >如何在 BigQuery 中逆透视表以将行转换为列?

如何在 BigQuery 中逆透视表以将行转换为列?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-28 12:11:10268浏览

How Can I Unpivot Tables in BigQuery to Transform Rows into Columns?

BigQuery 中的逆透视表

重构表以将行转换为列是一项常见的数据操作任务。在 BigQuery 中,此过程称为逆透视。

问题陈述:

假设您有一个表,其中数据的组织格式类似于以下内容:

如何在 BigQuery 中逆透视表以将行转换为列?

但是,您想要的输出表的结构应如下所示:

“在此处输入图像描述”

解决方案:

至要实现此转换,您可以利用 BigQuery 中的 UNPIVOT 运算符。此运算符将行旋转为列,允许您根据需要重塑表格。

更新的解决方案 (2021):

BigQuery 引入了专用的 UNPIVOT 运算符来简化此操作过程。使用 UNPIVOT 可以表示如下:

SELECT
  product,
  sales,
  quarter
FROM (
  SELECT
    product,
    UNNEST([Q1, Q2, Q3, Q4]) AS sales,
    UNNEST(["Q1", "Q2", "Q3", "Q4"]) AS quarter
  FROM UNNEST(sales_table) AS sales_table
)

此查询将列 Q1、Q2、Q3、Q4 逆透视为新列 sales 和季度。 UNNEST 运算符用于从嵌套数组字段 sales_table 中提取值。

以上是如何在 BigQuery 中逆透视表以将行转换为列?的详细内容。更多信息请关注PHP中文网其他相关文章!

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