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;

posted on 2022-11-29 18:40  枫夜求索阁  阅读(78)  评论(0)    收藏  举报

导航