假设我的数据格式如下(FYI,总行数超过30K):
customer_id order_date order_rank
A 2017-02-19 1
A 2017-02-24 2
A 2017-03-31 3
A 2017-07-03 4
A 2017-08-10 5
B 2016-04-24 1
B 2016-04-30 2
C 2016-07-18 1
C 2016-09-01 2
C 2016-09-13 3
我需要第4列,我们称之为days_since_last_order
,在order_rank = 1的情况下,然后0来计算自上一个订单以来的天数(排名为n-1)。
所以,上面会回来:
customer_id order_date order_rank days_since_last_order
A 2017-02-19 1 0
A 2017-02-24 2 5
A 2017-03-31 3 35
A 2017-07-03 4 94
A 2017-08-10 5 38
B 2016-04-24 1 0
B 2016-04-30 2 6
C 2016-07-18 1 79
C 2016-09-01 2 45
C 2016-09-13 3 12
是否有更简单的方法使用窗口函数(或类似函数)计算上述内容,而不是将整个数据集连接到自身(例如,在A.order_rank = B.order_rank - 1上)并执行计算?
谢谢!
答案 0 :(得分:2)
使用延迟窗函数
data:'XML Request :<?xml version="1.0" encoding="utf-8"?>........