首页 >数据库 >mysql教程 >如何在事先不知道列值的情况下动态透视 BigQuery 中的数据?

如何在事先不知道列值的情况下动态透视 BigQuery 中的数据?

Barbara Streisand
Barbara Streisand原创
2025-01-04 17:03:41234浏览

How Can I Dynamically Pivot Data in BigQuery Without Knowing the Column Values in Advance?

在 BigQuery 中动态使用 PIVOT

BigQuery 中的新 PIVOT 函数允许用户通过将一组的多个值汇总为单独的值来转换数据

问题:

在现实场景中,季度值可能无法提前知道。使用硬编码的季度值运行静态 PIVOT 查询变得不可行。

解决方案:

要动态处理未知的季度值,可以使用以下方法:

  1. 创建子查询来获取不同的季度值:
(SELECT DISTINCT quarter FROM `project.dataset.Produce` ORDER BY quarter)
  1. 使用 STRING_AGG 生成动态数据透视列列表:
STRING_AGG(quarter, '", "')
  1. 立即执行以构建数据透视查询动态:
EXECUTE IMMEDIATE (
  'SELECT * FROM (SELECT * FROM `project.dataset.Produce`)
  PIVOT(SUM(sales) FOR quarter IN (' || STRING_AGG(quarter, '", "') || '"))'
)

通过根据不同的季度值动态构建数据透视列列表,此方法允许灵活的 PIVOT 操作,而无需预先确定季度范围。

以上是如何在事先不知道列值的情况下动态透视 BigQuery 中的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

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