【发布时间】:2018-03-01 02:48:31
【问题描述】:
代码在 hive 上运行:
select day,count(mdn)*5 as number from
(select distinct a.mdn,a.day from
flow a
left outer join
flow b
on a.day=date_add(b.day,-1) and a.mdn=b.mdn
left outer join
flow c
on a.day=date_add(c.day,-2) and a.mdn=c.mdn
left outer join
flow d
on a.day=date_add(d.day,-3) and a.mdn=d.mdn
where b.mdn is null and c.mdn is null and d.mdn is null)t
group by day
代码的逻辑是选择今天的一个mdn,未来三天没有出现的mdn,计算mdn的个数。但是这段代码的效率很低,因为3次join同一个大表流.如何高效简化?
【问题讨论】: