Обновление вложенного массива в BigQuery - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь обновить массив в таблице данными из другой таблицы, но не могу заставить его работать.

Я новичок во вложенных структурах BQ и задаюсь вопросом, может ли кто-нибудь помочь

UPDATE `dim_business_nested`
SET business_attribute = 
ARRAY_AGG(STRUCT(ba.ProgramType = dbn.business_attribute.attribute_type
                 ,ba.ProgramName = dbn.business_attribute.attribute_value  
                 ,ba.ProgramID = dbn.business_attribute.attribute_num_value 
                 ,CURRENT_DATETIME = dbn.business_attribute.created_date 
                 ,CAST(NULL AS DATETIME) = dbn.business_attribute.modified_date 
                ))
from `business_attributes` ba
JOIN `dim_business_nested` dbn ON CAST(ba.Practice_No AS STRING) = dbn.business_no 
WHERE dbn.business_type = 'Surgery'

Это то, что я пытаюсь сделать, но это неправильно. Я получаю ошибку доступа к массиву.

Любая помощь будет принята с благодарностью

Спасибо

РЕДАКТИРОВАТЬ: поэтому я обновил свой код до

UPDATE `dim_business_nested`
SET business_attribute = 
ARRAY_AGG(STRUCT( 
        ba.ProgramType = business_attribute.attribute_type
       ,ba.ProgramName = business_attribute.attribute_value  
       ,ba.ProgramID = business_attribute.attribute_num_value 
       ,CURRENT_DATETIME = business_attribute.created_date 
       ,CAST(NULL AS DATETIME) = business_attribute.modified_date 
      ))
from `business_attributes` ba
JOIN `dim_business_nested` dbn ON CAST(ba.Practice_No AS STRING) = dbn.business_no 
CROSS JOIN UNNEST(dbn.business_attribute) business_attribute
WHERE dbn.business_type = 'Surgery'

Но теперь я получаю

Aggregate function ARRAY_AGG not allowed in UPDATE clause

Меня действительно сбивают с толку все эти вложенные штуки, надеюсь, кто-нибудь может помочь

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