如何在BigQuery standardSQL中取消嵌套多个数组

时间:2019-07-19 07:59:23

标签: sql google-bigquery unnest

我正在从Google Bigquery表中选择包含JSON列的数据。我的表有多个嵌套数组,其中一个包含两个嵌套级别。 这是我的表架构

https://imgur.com/UBPKUMx

我的陈述是:

SELECT 
items.*,
pay.*,
credits.creditnoteid,
credits.id,
credits.total
FROM client_account.invoices,
UNNEST(lineitems) items,
UNNEST(items.tracking),
UNNEST(payments) pay,
UNNEST(creditnotes) credits

https://imgur.com/c1YT258

不幸的是我没有结果... 您能帮我取消所有阵列的嵌套吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

好的,我对一个数据集进行了测试。我认为creditnotes始终是null。因为就我而言,取消嵌套始终为null的列时没有任何结果。您可以使用LEFT JOIN我修改了查询以使用左联接来解决此问题,但是您可能可以对其进行更好的调整。

SELECT 
items.*,
tracking.*,
pay.*,
credits.creditnoteid,
credits.id,
credits.total
FROM client_account.invoices
LEFT JOIN UNNEST(lineitems) items
LEFT JOIN UNNEST(items.tracking) tracking
LEFT JOIN UNNEST(payments) pay
LEFT JOIN UNNEST(creditnotes) credits