【发布时间】:2019-11-19 13:43:55
【问题描述】:
给定一个表格如下:
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
我正在寻找一种有效的方法来计算在当前行(当前行包含在总和中)之后的 x 天数内发生的连接数,按 client_id 分区。
如果x=6 则输出表将导致:
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
关注点:
我不想添加所有缺失的日期,然后执行滑动窗口计数
x以下行,因为我的表已经非常大了。我正在使用 Impala,不支持
range between interval 'x' days following and current row。
【问题讨论】:
-
是否保证每个客户每个日期只出现一次?
-
@salman 是的
标签: sql datetime window-functions impala