简体   繁体   English

在 ARRAY BigQuery 中更新 ARRAY(GA4 数据)

[英]Update ARRAY IN ARRAY BigQuery (GA4 Data)

I want to update a value in array with a value in another table.我想用另一个表中的值更新数组中的值。

table1:表格1:

event_params.key事件参数.key event_params.value.string_value event_params.value.string_value
country国家 US我们

table2:表 2:

country国家 new_country新国家
US我们 NL荷兰语

I try我试试

UPDATE table1

SET event_params = ARRAY(SELECT AS STRUCT * REPLACE ( new_country AS value.string_value ) FROM UNNEST(event_params) 
WHERE key = "country")

FROM(SELECT country, new_country FROM table2)

WHERE 
(SELECT value.string_value from unnest(event_params) where key = 'country') = t2.country

It doesnt work.. The problem is the value.string_value because is also an array.它不起作用.. 问题是 value.string_value 因为它也是一个数组。

The final table should look like table1:决赛桌应类似于 table1:

event_params.key事件参数.key event_params.value.string_value event_params.value.string_value
country国家 NL荷兰语

Now I want to update table1 with table2 to udate the country from US to NL in table1.现在我想用 table2 更新 table1 以将 table1 中的国家从 US 更新为 NL。

How can I take the array in array?我怎样才能把数组放在数组中?

I also saw this code:我也看到了这段代码:

UPDATE `project.dataset.your_table` t
SET hits = 
  ARRAY(
    SELECT AS STRUCT * REPLACE(
      ARRAY(
        SELECT AS STRUCT product.* REPLACE(
          CASE WHEN map.raw_name = product.productCategory THEN category 
            ELSE productCategoryAttribute END AS productCategoryAttribute)
        FROM UNNEST(product) product
        LEFT JOIN UNNEST(agg_map.map) map 
        ON map.raw_name = product.productCategory
      ) AS product)
    FROM UNNEST(hits) hit
  ) 
FROM (SELECT ARRAY_AGG(row) map FROM `project.dataset.map` row) agg_map 
WHERE TRUE  

BigQuery UPDATE nested array field But I cant implement it. BigQuery UPDATE 嵌套数组字段但我无法实现它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM