用户最长连续下单天数

用户最长连续下单天数

1、求出每个用户每个下单日期
2、求出每个下单日期的排序,按日期升序
3、每个日期减去对应的排序序号,求每个下单日期对应的连续登录天数
4、求每个用户的最长连续天数

代码如下:

SELECT  user_id
        ,MAX(continue_order_cnt) AS max_day
FROM    (
            SELECT  user_id
                    ,DATEADD(pay_rn,rn*-1,'dd') AS first_day
                    ,COUNT(1) AS continue_order_cnt
            FROM    (
                        SELECT  t.*
                                ,ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY pay_rn ASC ) AS rn
                        FROM    (
                                    SELECT  user_id
                                            ,DATETRUNC(pay_time,'dd') AS pay_rn
                                    FROM    dwd_order_order_trans_pay_detail
                                    GROUP BY user_id
                                             ,DATETRUNC(pay_time,'dd')
                                ) t
                    ) f
            GROUP BY user_id
                     ,DATEADD(pay_rn,rn*-1,'dd')
        ) g
GROUP BY user_id
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值