我有一个表,其中一列定义为:
my_column ARRAY<STRUCT<key STRING, value FLOAT64, description STRING>>
有没有一些简单的方法可以指定要在SELECT
语句中返回的参数列表?例如删除description
,因此结果列仍将是一个结构数组,但仅包含key
和value
。
下面是 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
无需加入或取消嵌套。