gpt4 book ai didi

google-bigquery - 如何使用 DML 语法更新 BigQuery 中的嵌套记录?

转载 作者:行者123 更新时间:2023-12-04 14:40:43 26 4
gpt4 key购买 nike

我有以下 BigQuery 架构,我正在尝试更新 event_dim.date field :

enter image description here

我使用标准 SQL 和新的 BigQuery DML 尝试了以下查询:

UPDATE `sara-bigquery.examples.app_events_20170113`
SET event_dim.date = '20170113'
WHERE true

但是得到了这个错误:
Error: Cannot access field date on a value with type ARRAY<STRUCT<name STRING, params ARRAY<STRUCT<key STRING, 
value STRUCT<string_value STRING, int_value INT64, float_value FLOAT64, ...>>>, timestamp_micros INT64, ...>> at [2:15]

我可以使用此查询选择嵌套字段:
 SELECT x.date FROM `sara-bigquery.examples.app_events_20170113`,
UNNEST(event_dim) x

但想不出正确的 UPDATE句法。

最佳答案

该查询失败,因为 event_dim是一个结构数组。这应该可以解决问题:

UPDATE `sara-bigquery.examples.app_events_20170113`
SET event_dim = ARRAY(
SELECT AS STRUCT * REPLACE('20170113' AS date) FROM UNNEST(event_dim)
)
WHERE true

查看 docs有关如何在标准 SQL 中处理数组的更多详细信息。

关于google-bigquery - 如何使用 DML 语法更新 BigQuery 中的嵌套记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41638651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com