BigQuery更新多个嵌套列

时间:2019-07-17 12:29:17

标签: nested google-bigquery

我想了解如何更新BigQuery嵌套表的原理。

例如,具有一个表:

ID   GROSS   OL.ID  OL.GROSS   PL.ID   PL.GROSS
1    100     12     200        34      454
             34     465        56      5667
             67     7876    

我想更新主要产品OL的总价值。和PL。其他任何值

这是怎么做的?

2 个答案:

答案 0 :(得分:1)

在此示例中,我假设OLPL是数组,但是很难分辨。您可以使用如下查询:

UPDATE dataset.table
SET
  OL = ARRAY(SELECT AS STRUCT ID + 2 AS ID, GROSS + 3 AS GROSS FROM UNNEST(OL)),
  PL = ARRAY(SELECT AS STRUCT 1 AS ID, GROSS + 3 AS GROSS FROM UNNEST(PL))

另请参阅文档中的UPDATE repeated records example

答案 1 :(得分:1)

以下内容适用于BigQuery Standard SQL,并扩展了Elliott的答案

通常,结构中不止两个元素,您只需要更新一个或两个-而不是显式地全部调用它们来重建原始数组-您可以使用以下方法

let statusBarWindow = UIApplication.shared.value(forKey: "statusBarWindow") as? UIWindow
statusBarWindow?.alpha = 0.5