hive 如何去除两个表相同的部分
问题场景
在项目开发当中,有时候需要配合用户出报表数据。这一部分是一个难题,因为数据量大,运行时间比较长,所以就需要慎重地写SQL,保证问题的顺利解决。而这次是需要去除同一个表的两部分数据的相同部分。
解决思路
将同一个表的两部分数据分别抽离出来做一个表,使用left outer join来关联两个表,然后将相同字段的条件放在on里面,然后将另一个表的相同字段为空的条件放在where里面。这样就可以去掉相同部分。这里是以左表为主表。
解决SQL
select *
from (
select * from tbl_aaa
where aid<5
) a left outer join (
select * from tbl_aaa
where aid>=5
) b on a.aname=b.aname
where b.aname is null;
浙公网安备 33010602011771号