BigQuery中跨多个数组列的高级UNNEST

时间:2019-01-28 14:43:24

标签: google-bigquery

有关UNNEST的问题。我有这张桌子:enter image description here

我想根据状态和语言环境数组取消嵌套,但结果表仍需要有7行,而不是14行。我想取消嵌套这些“数组对”,而不是一对一地嵌套2个数组(这将返回14)行)。

此外,我也不知道数组中的项目数。它可以是1,也可以是20,但是“组”中的每个数组的项数都相同。

关于如何实现这一目标的任何想法?

(请记住,我有大约10列作为数组,但是我的示例图像仅显示了其中2列)

1 个答案:

答案 0 :(得分:2)

以下是用于BigQuery标准SQL

#standardSQL
SELECT * EXCEPT(status, locale, pos1, pos2), status, locale  
FROM `project.dataset.table`,
UNNEST(status) status WITH OFFSET pos1,
UNNEST(locale) locale WITH OFFSET pos2
WHERE pos1 = pos2