hive表关联条件不支持不等值连接
不等式:(>=,>,<=,<,<>,between..and)
场景:oracle里面的SQL转化成hiveSQL中,关联时ON里面的条件如果含有不等值,那么在hive中不能直接使用,如果将不等式放在where条件中,造成下面描述问题:
直接将不等值连接放在where条件中会过滤掉主表的部分数据,
解决方案:
需要先通过inner join 加上非等值条件 再left join
示例图:
--按照正常思路直接放在where下面(错误)
select t.id,t.date,t1.date
from t
lfet join t1 on t.id=t1.id
and t.date>t1.date
--正确写法
select t.id,t.date,t2.date
from t
lfet join
(select t.id,t1,date
from t
inner join t1 on t.id=t1.id
where t.date>t1.date) t2
on t.id=t2.id
最后
以上就是魔幻人生最近收集整理的关于hive表关联条件不支持不等值连接的全部内容,更多相关hive表关联条件不支持不等值连接内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复