sql - 如何在 BigQuery 标准 SQL 中取消嵌套多个数组
问题描述
我正在从包含 JSON 列的 Google Bigquery 表中选择数据。我的表有多个嵌套数组,其中一个包含两个嵌套级别。这是我的表模式
我的声明是:
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
不幸的是,我没有得到任何结果......你能帮我解除所有数组的嵌套吗?
解决方案
好的,我对我的一个数据集进行了测试。我认为creditnotes
总是这样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
推荐阅读
- haskell - 如果达到内存限制,则中止评估 Haskell 表达式
- spring - 晚上好,我无法解决这个问题请给一些想法
- android - Android Room:以 SQLite 格式保存和导出数据库
- kotlin - 如何在kotlin中实现序列的并行映射
- python - 尝试在 Tkinter 画布中打印一些文本时,为什么在文本之间出现括号?
- php - 可捕获的致命错误:OCI-Lob 类的对象无法转换为字符串
- javascript - 这是什么:变量JS语法后的符号?
- php - 在 ACF 图像循环中提供较小的图像
- c# - ARC4 加密在服务器端无法正常工作
- sqlite - Safari 浏览器历史数据库是否包含转换类型?