Hive实战之单月访问次数和总访问次数



数据:(基表:jibiao)

用户名,月份,访问次数


A,2015-01,5 A,2015-01,15 B,2015-01,5 A,2015-01,8 B,2015-01,25 A,2015-01,5 A,2015-02,4 A,2015-02,6 B,2015-02,10 B,2015-02,5 A,2015-03,16 A,2015-03,22 B,2015-03,23 B,2015-03,10 B,2015-03,1

需求:求单月访问次数和总访问次数

访客    月份    月访问总计    累计访问总计
A    2015-01       33        33
A    2015-02       10        43
…….    …….         …….       ……. 
B    2015-01       30        30
B    2015-02       15        45
…….    …….         …….       …….

 

实现需求的步骤:

  1,先做一个表A。属性为name,month,sum(num)。插入基表的name和mon分组数据。

create table A (name string,mon string, sum string) ;
insert into table A select name as name,mon as mon,sum(count) as sum from jibiao j group by j.name,j.mon;

  2,做一个视图,把和表A相同的表B和表A内关联。

create view AandB as select a.name aname, a.mon amon, a.sum asum, b.name bname, b.mon bmon, b.sum bsum from 
A a join A b on a.name=b.name;

 

  3,视图AandB中amon>=bmon  时,通过对bsum的操作来进行月份的累加效果来查找累计访问总计。

select aname amon asum sum(bsum) as monsum from AandB where amon>=bmon group by aname,amon,asum order by aname,amon;

 

posted @ 2018-10-19 17:07  薄点  阅读(1055)  评论(0编辑  收藏  举报