从 BQ 中的结构数组中选择结构



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

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

有没有一些简单的方法可以指定要在SELECT语句中返回的参数列表?例如删除description,因此结果列仍将是一个结构数组,但仅包含keyvalue

下面是 BigQuery Standard SQL

#standardSQL
SELECT * REPLACE(
ARRAY(
SELECT AS STRUCT * EXCEPT(description)
FROM UNNEST(my_column)
) AS my_column)
FROM `project.dataset.table`  

上面完全保留了表的架构,并且仅通过删除描述my_column字段中进行更改

我只是取消嵌套,然后重新聚合您选择的字段。

select array_agg(struct(m.key,m.value)) as my_new_column
from table
left join unnest(my_column) m

我找到了这样的方式:

SELECT
ARRAY(SELECT AS VALUE STRUCT(key, value) FROM a.my_column) as my_new_column
FROM my_table a

无需加入或取消嵌套。

最新更新