hiveSql的一些问题

来源:互联网 发布:金十数据官方网站 编辑:程序博客网 时间:2024/06/08 07:29
一:hive的小需求

需求:

有如下访客访问次数统计表 t_access_times

访客

月份

访问次数

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

……

……

……

需要输出报表:t_access_times_accumulate

访客

月份

月访问总计

累计访问总计

A

2015-01

33

33

A

2015-02

10

43

…….

…….

…….

…….

B

2015-01

30

30

B

2015-02

15

45

…….

…….

…….

…….


实现:

select a.name,a.time,max(a.num),sum(b.num)  from (select name,time,sum(accessnum) num from t_access_times group by name,time) a join (select name,time,sum(accessnum) num from t_access_times group by name,time) b on a.name=b.name where b.time<=a.time  group by a.name,a.time order by a.name,a.time;

结果:

+---------+----------+------+------+--+
| a.name  |  a.time  | _c2  | _c3  |
+---------+----------+------+------+--+
| A       | 2015-01  | 33   | 33   |
| A       | 2015-02  | 10   | 43   |
| B       | 2015-01  | 30   | 30   |
| B       | 2015-02  | 15   | 45   |
+---------+----------+------+------+--+

缺点:计算慢,非常的慢

原创粉丝点击