google-bigquery - 在缺少或没有结果的情况下变平
问题描述
我对 Bigquery 很陌生,我想在一个查询中取消嵌套 2 个表。
我试图查询下面的代码,但没有奏效。它给了我这个消息:“这个查询没有返回结果”。
SELECT
timestamp AS Date,
A.key,
B.name
FROM `pms_table_request_log.partners_request_log_*`,
UNNEST(jsonPayload.response.body.channels) AS A,
UNNEST(jsonPayload.response.body.data.rows) AS B;
我希望 key 和 name 没有嵌套。
解决方案
如果取消嵌套的意思是“展平”,这意味着将数据从数组字段带到顶层,您可以尝试LEFT JOIN
代替CROSS JOIN
(即逗号)
SELECT timestamp AS Date ,A.key ,B.name
FROM pms_table_request_log.partners_request_log_*
LEFT JOIN UNNEST(jsonPayload.response.body.channels) AS A
LEFT JOIN UNNEST(jsonPayload.response.body.data.rows) AS B
如果数组中的任何一个为空,CROSS JOIN
则会破坏整行,同时LEFT JOIN
保留左侧的“表”
推荐阅读
- react-native - 从对象的资产中导入图片
- excel - Adding hyperlink to a cell when the cell and the location is dynamic
- reactjs - 为什么 React 有自己的服务器?
- mongodb - Mongo 不允许保存重复数据,即使在指定为不唯一之后也是如此
- python - 验证数据并在数据无效时显示错误消息
- javascript - javascript在没有重复名称的数组中计算重复项
- android - RecyclerView 中的 Fragment 更改崩溃。我找不到解决方案
- json - 如何在jq中分组?
- c# - 关于 system.data.sqlclient.dll 的 dotnet 核心编译问题
- python - 从CSV读取时如何避免覆盖dict理解的结果?