首页 > 解决方案 > 从 BigQuery 中的重复嵌套列中获取参数数组

问题描述

我有一个表,其中一列定义为:

my_column ARRAY<STRUCT<key STRING, value FLOAT64, description STRING>>

有没有一些简单的方法可以使用语句value为每一行获取参数数组?SELECT

显然,这不起作用:

SELECT my_column.value
FROM my_table

我可以使用UNNEST然后ARRAY_AGG对所有其他列进行分组,但感觉就像是一个黑客。

标签: sqlarraysdata-structuresgoogle-bigquery

解决方案


以下是 BigQuery 标准 SQL

我可以使用 UNNEST 然后 ARRAY_AGG 对所有其他列进行分组,但感觉就像一个黑客。

不,这根本不是黑客攻击。同时,您可以避免在此处使用显式 UNNEST

#standardSQL
SELECT ARRAY(SELECT value FROM t.my_column) AS my_column_values
FROM `project.dataset.my_table` t   

或者

#standardSQL
SELECT (SELECT ARRAY_AGG(value) FROM t.my_column) my_column_values
FROM `project.dataset.my_table` t

推荐阅读