我正在学习如何查询bigquery (特别是结构和数组)
我有一个表,结构如下参考表:表名称:地址名称(字符串),年龄(整数,地址(记录和重复)地址中的列有: address1,address2,城市,邮政编码
问:如何选择除zipcode之外的所有列
我尝试按如下方式查询
SELECT
EXCEPT(zipcode)
FROM Address, UNNEST(address) 上面的查询检索地址记录字段列两次。
另外,后续运行的select命令如下所示
SELECT
Name,
Age,
Address
from temp地址应包含除邮政编码以外的所有列。
发布于 2021-08-16 22:17:50
如果你分解了你的地址数组,你需要重新构建它。我不是SQL专家,但是下面的代码可以工作
select name,
age,
ARRAY_AGG(STRUCT(a.address1 as address1, a.address2 as address2, a.city as city)) as address
from Address, unnest(address) a
group by name, age您不能使用* except,因为您需要按密钥分组以重建阵列agg
发布于 2021-08-16 22:33:47
考虑以下内容-保留所有列不变,但删除了zipcode的address列除外
select * except(address),
array(select as struct * except(zipcode) from t.address) address
from Addresses thttps://stackoverflow.com/questions/68808671
复制相似问题