【发布时间】:2020-01-09 03:08:27
【问题描述】:
我在 BigQuery 表中有一些数据,其中一个字段是结构数组。我试图基本上做一个SELECT *,但为数组中的嵌套字段设置别名。这是一个简单的例子:
with array_of_records as (
select
'field1' as regular_field,
[struct ('arr_1a' as field_1, 'arr_1b' as field_2), struct ('arr_2a' as field_1, 'arr_2b' as field_2)] as array_field
)
select
regular_field,
array_agg (
struct (
array_entry.field_1 as field_a,
array_entry.field_2 as field_b
)
) as array_field
from array_of_records, unnest(array_field) array_entry
group by 1
有没有办法不用array_agg 和group_by 来做到这一点?我之所以问是因为该表有大量字段,并且我想避免除嵌套数组字段之外的所有字段进行分组。我意识到我也可以用 any_value() 之类的东西聚合每一列,但这似乎也不是一个特别干净的解决方案。
【问题讨论】:
标签: sql arrays google-bigquery