首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大查询:结果隐藏记录为空的行。

大查询:结果隐藏记录为空的行。
EN

Stack Overflow用户
提问于 2019-11-26 14:50:06
回答 1查看 204关注 0票数 1

我已经将数据从Firestore导入到BigQuery。

我有一个叫做“孔”的字段,它有一个计划的深度(计划的深度永远不能为空),以及一个测量深度的数组(这可以是空的)。测量的深度有值、日期和人。

如果我在查询中只询问计划的深度,结果表中的所有洞都是可见的:

代码语言:javascript
复制
select name,  un_holes.Number as hole_number, un_holes.PlannedDepth.Value as planned_depth
from reporting.reporting_data_staging ,unnest (Holes) as un_holes
where mineName = 'Frasure Creek Mining'

这个查询返回了我所有的100条记录。

但是,当我添加测量的深度时,只返回8行,这是测量深度不为空的行:

代码语言:javascript
复制
select name,  un_holes.Number as hole_number, un_holes.PlannedDepth.Value as planned_depth,
         un_measured.Value as measured_depth
from reporting.reporting_data_staging ,
     unnest (Holes) as un_holes, 
     unnest (un_holes.MeasuredDepths) as un_measured
where mineName = 'Frasure Creek Mining'

希望查看第二个图像中的数据的结果,如果没有测量的数据,则对行使用一个空白或空值,而不是完全切割行。

我是BigQuery新手,我很久以前就做过SQL了。我曾寻找过类似的问题,但我可能犯了错误,没有正确地措辞我的搜索,也可能无意中错过了类似的问题,所以如果我这样做了,很抱歉。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-26 15:19:09

使用left joins可以保留具有空数组的行:

代码语言:javascript
复制
select name,  un_holes.Number as hole_number, un_holes.PlannedDepth.Value as planned_depth,
         un_measured.Value as measured_depth
from reporting.reporting_data_staging left join
     unnest (Holes) as un_holes
     on 1=1 left join
     unnest (un_holes.MeasuredDepths) as un_measured
     on 1=1
where mineName = 'Frasure Creek Mining';

在使用unnest()left join时,我认为on子句是不必要的。到目前为止,我还没有足够的进步性来省略onjoin子句。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59053530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档