流失用户回归sql 各位看看这个规则有没有问题?

--  流失用户回归 = 回归用户/流失用户   (取某个日期的用户为样本 )
--  流失用户=样本中(开始日期~结束日期未登录用户)
--  回归用户=样本中(样本日期 且 回归日期登录 且 在流失用户)

select count(distinct b.uid)/
count(distinct a.uid)      
    from(
--       流失用户
        select distinct a.uid
        from 
        (
--      登录时间用户的样本  2022-05-01 代表以2022-05-01登录的用户为样本以下日期需要统一修改
            select distinct uid
            from user_login_record
            where date_format(login_time,'%Y-%m-%d') ="2022-05-01" 
        ) as a
        left join 
        (
--      连续不登录用户
            select distinct uid
            from user_login_record
-- 		日期后开始统计的天数 INTERVAL 1 代表+1 5月2日开始
            where date_format(login_time,'%Y-%m-%d')>=date_add("2022-05-01",INTERVAL 1 DAY) and
-- 		日期后截至统计的天数 INTERVAL 2 代表+2 5月3日结束 
						date_format(login_time,'%Y-%m-%d')<=date_add("2022-05-01",INTERVAL 2 DAY)
        ) as b
        on a.uid=b.uid
        where b.uid is null
    ) as a
     left join
    (
--      登录用户
        select distinct a.uid
        from 
        (
            select distinct uid
            from user_login_record
            where date_format(login_time,'%Y-%m-%d')="2022-05-01" 
        ) as a
       INNER join 
        (
--      回归用户
            select distinct uid
            from user_login_record
--      回归用户时间,INTERVAL 3 代表+3  即5月4日的登录用户 
            where date_format(login_time,'%Y-%m-%d')=date_add("2022-05-01",INTERVAL 3 DAY ) 
        ) as c
        on a.uid=c.uid
    ) as  b
    on a.uid=b.uid;
		

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值