在 BigQuery 中查询双嵌套数组 [重复]
Posted
技术标签:
【中文标题】在 BigQuery 中查询双嵌套数组 [重复]【英文标题】:Query double nested array in BigQuery [duplicate] 【发布时间】:2021-02-24 20:34:30 【问题描述】:我正在尝试查询包含多个嵌套记录数组的 BigQuery 表。
表格如下所示:
enter image description here
所以我确实有一个个人资料 ID,对于一个 ID,我有多个 Collaborator_Type 和 Permission。 对于每一个 Collaborator_Type,我都有一个 Params.name 和 Params.value 数组。
如何构建一个生成类似于以下最终输出的查询:
profileId ---- Collaborator_Type ----Collaborator.Permission ----primary_event ---- billable... 后面是 Params.name 中的每个字段作为列的标题和 Params 中的相应字段.value 作为列中的结果)
任何帮助将不胜感激! 谢谢!
【问题讨论】:
如果你能提供帮助,避免代码/结构的图像有助于可访问性。尝试将您的数据表创建为格式化的 ASCII 表。此外,您应该为您的图片添加说明。 在 SO 上已经回答了很多类似(如果不相同)的问题。例如搜索pivot
【参考方案1】:
您必须使用子查询手动提取它们:
SELECT
profileId,
Collaborator_Type,
Collaborator_Permission,
(SELECT value FROM t.Params WHERE name = 'primary_event') AS primary_event,
(SELECT value FROM t.Params WHERE name = 'billable') AS billable
FROM mytable t
【讨论】:
我觉得,这行不通。最简单的解决方法是使用FROM t.Params
而不是FROM Params
并显然将别名t
添加到FROM mytable
,所以它将是FROM mytable t
以上是关于在 BigQuery 中查询双嵌套数组 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 BigQuery 中取消嵌套重复记录,一个数组给出列名,另一个给出列值?