在BigQuery中,可以使用UNNEST函数将数组展开为行,然后使用DISTINCT关键字来保留唯一值。以下是一个示例解决方法:
MERGE dataset.table1 t
USING (
SELECT id, ARRAY(SELECT DISTINCT value FROM UNNEST(array1) UNION DISTINCT SELECT DISTINCT value FROM UNNEST(array2)) AS merged_array
FROM dataset.table2
) s
ON t.id = s.id
WHEN MATCHED THEN
UPDATE SET t.array = s.merged_array
WHEN NOT MATCHED THEN
INSERT (id, array)
VALUES (s.id, s.merged_array);
在上述示例中,我们使用UNNEST函数将array1
和array2
展开为多行,并使用DISTINCT关键字来保留唯一的值。然后,我们使用UNION DISTINCT运算符将两个展开的数组合并,并将结果存储在名为merged_array
的新数组中。
接下来,我们使用MERGE语句将table2
中的数据合并到table1
中。如果匹配到相同的id,则执行UPDATE操作,将array
字段更新为合并后的数组。如果没有匹配到id,则执行INSERT操作,将id和合并后的数组插入到table1
中。
请注意,上述示例中的dataset
和table1
、table2
是占位符,您需要根据实际情况替换为您的数据集和表名。