sql(clickhouse) 实现用户(每月)连续最大登陆数/签到数

本文介绍了两种方法来计算用户连续的最大登录天数,适用于提升用户留存的签到活动。方法一是通过相邻日期相减并转换处理,找到最长的连续1的组;方法二是通过对日期减去特定天数,找出相同天数的计数。对于按月计算连续登录数,只需添加月份条件即可。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

产品经理抛出一个需求:我想搞一个签到活动,对连续登陆时间久的,给与一定的奖品,来提升用户留存。

程序员:那你知道目前用户的最大的连续登陆天数吗?

 

那么问题来了,如果统计用户的连续最大登陆数呢?

 

思路拆解:连续登陆/签到是指登陆的天数隔为1

方法一:

观察下面列表,假设是某一用户的登陆数据,可以看到只需要统计连续最大的1就是该用户的最大登陆数

所以思路是:相邻的日期相减,拿到间隔数字,(连续最大的1的个数字+1)即为连续最大登陆数

比如2020-01-01  到2020-01-03 中间有2个连续的1,则最大连续登陆数是2+1=3天

日期 是否连续 间隔
2020/1/1 —— 0
2020/1/2 1
2020/1/3 1
2020/1/5 2
2020/1/6 1
2020/1/7 1
2020/1/8
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值