用户连续交易天数与连续交易额,与各自对应的日期区间
1.合并当天有多笔交易的用户的交易数据
2.如果有交易额为0的情况,过滤交易额为0的记录
3.按用户分组,以日期降序排序,相减后可将连续日期归为一组
ds | 3.1 | 3.2 | 3.3 | 3.5 | 3.6 | 3.9 |
---|---|---|---|---|---|---|
排序 | 1 | 2 | 3 | 4 | 5 | 6 |
相减 | 2.28 | 2.28 | 2.28 | 3.1 | 3.1 | 3.3 |
4.根据相减的值与用户id,分组计算
SELECT user_id
,drn
,continual_ds
,continual_ds_rank
,continual_amt
,continual_amt_rank
,begin_dt
,end_dt
FROM (
SELECT user_id
,drn
,COUNT(ds) AS continual_ds
,ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY COUNT(ds) DESC,drn DESC) AS continual_ds_rank
,ROUND(SUM(pay_amt),2) AS continual_amt
,ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY ROUND(SUM(pay_amt),2) DESC,drn DESC) AS continual_amt_rank
,MIN(ds)