【发布时间】:2020-03-01 17:33:20
【问题描述】:
我有一个包含几列的表,其中一些列是长度相同的数组。我想解除它们的嵌套,以获得一个结果,其中包含来自不同行的数组中的值。
所以有这样一张桌子:
我想去:
这是其中一个数组列的工作方式:
WITH data AS
(
SELECT 1001 as id, ['a', 'b', 'c'] as array_1, [1, 2, 3] as array_2
UNION ALL
SELECT 1002 as id, ['d', 'e', 'f', 'g'] as array_1, [4, 5, 6, 7] as array_2
UNION ALL
SELECT 1003 as id, ['h', 'i'] as array_1, [8, 9] as array_2
)
SELECT id, a1
FROM data,
UNNEST(array_1) as a1
有没有一些优雅的方法可以同时解除两个数组的嵌套?我想避免单独取消嵌套每一列,然后将所有内容连接在一起。
【问题讨论】:
标签: sql google-bigquery flatten unnest