给出如下表:
client_id date connections
---------------------------------------
121438297 2018-01-03 0
121438297 2018-01-08 1
121438297 2018-01-10 3
121438297 2018-01-12 1
121438297 2018-01-19 7
363863811 2018-01-18 0
363863811 2018-01-30 5
363863811 2018-02-01 4
363863811 2018-02-10 0
我正在寻找一种有效的方法来对当前行(当前行包括在总和中)之后的6天内发生的连接数进行求和,并按client_id进行分区,这将导致:
client_id date connections connections_within_6_days
---------------------------------------------------------------------
121438297 2018-01-03 0 1
121438297 2018-01-08 1 5
121438297 2018-01-10 3 4
121438297 2018-01-12 1 1
121438297 2018-01-19 7 7
363863811 2018-01-18 0 0
363863811 2018-01-30 5 9
363863811 2018-02-01 4 4
363863811 2018-02-10 0 0
问题:
-
我不想添加所有缺少的日期,然后执行滑动窗口以计数接下来的7行,因为我的表已经很大。
-
我正在使用Impala,但不支持
range between interval '7' days following and current row
。
编辑:考虑到我需要将窗口大小更改为更大的数字(例如30天以上),我正在寻找一个通用的答案