Sql 如何在bigquery中从结构中删除行
你能帮我提个问题吗,我对Bigquery还不熟悉 我有一个包含多个记录类型字段的表。我需要从一条记录中删除一行。下面的例子如下:Sql 如何在bigquery中从结构中删除行,sql,google-bigquery,unnest,Sql,Google Bigquery,Unnest,你能帮我提个问题吗,我对Bigquery还不熟悉 我有一个包含多个记录类型字段的表。我需要从一条记录中删除一行。下面的例子如下: id date subid.id subid.flag 1234 1/4/2020 1234-1 1 1234-2 1 1234-3 1 1234-4
id date subid.id subid.flag
1234 1/4/2020 1234-1 1
1234-2 1
1234-3 1
1234-4 -1
5678 1/5/2020 5678-1 1
5678-2 1
我上面的要求是从结构subid中删除带有标志-1的行。最好的方法是什么?请帮忙
你可以放松和重新聚集。如果我理解正确:
select id, date,
(select array_agg(subid order by n)
from unnest(t.subid) subid with offset as n
where subid.flag <> -1
) as subid
from t;
下面是BigQuery标准SQL
#standardSQL
SELECT * EXCEPT(subid),
ARRAY(
SELECT AS VALUE subid
FROM t.subid WITH OFFSET
WHERE flag != -1
ORDER BY OFFSET
) AS subid
FROM `project.dataset.table` t
这回答了你的问题吗?嗨,Digvijay,谢谢你的回复。我不想删除整行,但我想从结构中删除某些行,并保持该行的剩余数据不变。@Gordon Linoff给出的答案对我的情况很有用。