Я пытаюсь обновить массив в таблице данными из другой таблицы, но не могу заставить его работать.
Я новичок во вложенных структурах 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
Меня действительно сбивают с толку все эти вложенные штуки, надеюсь, кто-нибудь может помочь