如何在 BigQuery 标准 SQL 中取消嵌套多个数组

How to UNNEST multiple arrays in BigQuery standardSQL

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

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

很遗憾,我没有得到任何结果... 你能帮我取消所有数组的嵌套吗?

好的,我对我的一个数据集进行了测试。我认为 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