Как обновить вложенный столбец bigquery данными из другой таблицы bigquery - PullRequest
0 голосов
/ 11 июня 2019

У меня есть 2 bigquery таблицы с вложенными столбцами, мне нужно обновлять все столбцы в table1 всякий раз, когда table1.value1=table2.value, также эти таблицы имеют огромное количество данных.

Я мог бы обновить один вложенный столбец со статическим столбцом, как показано ниже,

    #standardSQL
    UPDATE `ck.table1` 
    SET promotion_id = ARRAY(
      SELECT AS STRUCT * REPLACE (100 AS PromotionId ) FROM UNNEST(promotion_id)
    )

Но когда я пытаюсь использовать то же самое для обновления нескольких столбцов на основе данных таблицы2, я получаю исключения.

Я пытаюсь обновить table1 данными table2 всякий раз, когда table1.value1=table2.value со всеми вложенными столбцами.

На данный момент обе таблицы имеют похожую схему.

1 Ответ

0 голосов
/ 12 июня 2019

Мне нужно обновить все столбцы в таблице каждый раз, когда table1.value1 = table2.value
... обе таблицы имеют похожую схему

Полагаю, под similar вы имели в виду same

Ниже приведен стандарт SQL для BigQuery
Вы можете использовать приведенный ниже запрос, чтобы получить результат объединения и сохранить его обратно в таблицу1, используя destination table или CREATE OR REPLACE TABLE синтаксис

#standardSQL
SELECT AS VALUE IF(value IS NULL, t1, t2)
FROM `project.dataset.table1` t1
LEFT JOIN `project.dataset.table2` t2
ON value1 = value

Я не пробовал этот подход с синтаксисом UPDATE - но вы можете попробовать и сообщить нам: o)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...