本文主要是介绍hive 如何去除两个表相同的部分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题场景
在项目开发当中,有时候需要配合用户出报表数据。这一部分是一个难题,因为数据量大,运行时间比较长,所以就需要慎重地写SQL,保证问题的顺利解决。而这次是需要去除同一个表的两部分数据的相同部分。
解决思路
将同一个表的两部分数据分别抽离出来做一个表,使用left outer join
来关联两个表,然后将相同字段的条件放在on
里面,然后将另一个表的相同字段为空的条件放在where
里面。这样就可以去掉相同部分。这里是以左表为主表。
解决SQL
select *
from (select * from tbl_aaawhere aid<5
) a left outer join (select * from tbl_aaawhere aid>=5
) b on a.aname=b.aname
where b.aname is null;
这篇关于hive 如何去除两个表相同的部分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!