hive中进行增量统计-full join的用法-如何合并表中两列

我将其他相关不必要的细节隐去,只保留最终的技术点,希望能对以后有需要的朋友提供些许帮助。
最近在进行hive表的统计的时候有这样的一个需求,
hive中增量统计

一 、任务需求:
有这样的两个表 table0,table01,
table0为原始数据表:

age num total pday
50 20 100 20190420
60 20 100 20190420
70 20 100 20190420
80 20 100 20190420

age为年龄,50后 60后 70后 80后
num为在20190420这一天新增的人数
total 为截至到20190420这一天的所有人数

还有一张table1表,长这个样子

age num pday
50 10 20190421
60 10 20190421
70 10 20190421
80 10 20190421

很容易理解,年龄为50后的人 今天又新增了10人,年龄为60后的人今天也新增了10人,以此类推
需求是,需要统计在4月21日的总人数,生成像table0那样的表格,也就是以下这张表,我称为结果表 result_table

age num total pday
50 10 110 20190421
60 10 110 20190421
70 10 110 20190421
80 10 110 20190421

我们以50后为例,表中num表示的是今日新增10人,总人数变成了昨天的100加上今天的10人,共110人。

sql语句如下,比较简单

select 
	t0.age,
	t1.num,
	t1.num+t0.total as total
from
	(select age,num,total from table0 where pday=20190420)  as t0
join 
	(select  age ,num from table1 where pday=20190421)  as t1
on 
	t0.age=t1.age

二、出现的问题
1 很容易产生的问题如下:在未来的某一天,新增的人只有50后 60后,没有80 90后,那table0与table1进行join的结果就只能有50后60后, 80和90的就会消失,大家想想是不是这个道理。如下表,就是在4月25日新增的人只有50和60的人,那么80 90

  • 11
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值