SQL: 连续活跃用户
例如统计最近 1 月 连续 4 周活跃用户,逻辑为先统计访问的时间为一年中的第几个星期,接着统计次数是否大于等于 4 即可。
SELECT user, COUNT(DISTINCT(weekofyear(login_date))) AS active_week_num
FROM table_a
WHERE login_date>='2020-03-06'
GROUP BY user
HAVING active_week_num >= 4
1
2
3
4
5
2
3
4
5
如果想计算连续日活跃用户,把 weekofyear()
换成 dayofyear()
即可。
reference
- [1] xuzhengchuang. sql统计连续登录活跃用户open in new window