我是靠谱客的博主 魔幻人生,最近开发中收集的这篇文章主要介绍hive表关联条件不支持不等值连接,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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表关联条件不支持不等值连接所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部