本文主要是介绍连续七天登录-在线人数最多,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
连续七天登录
select id,count(*)
from
(select *,date_add(dated,-rown) as startdate
from
(select *,row_number() over(PARTITION by id order by dated) as rown
from
(select distinct id, to_date(date) as dated
from table ) a
) b
)c
GROUP BY id,startdate
having count(*)>=7;
查询7天连续登陆用户这个问题很经典
具体思路:
1、因为每天用户登录次数可能不止一次,所以需要先将用户每天的登录日期去重。
2、再用row_number() over(partition by id order by date)函数将用户id分组,按照登陆时间进行排序。
3、计算登录日期减去第二步骤得到的结果值,用户连续登陆情况下,每次相减的结果都相同。
4、按照id和日期分组并count(1),筛选大于等于7的即为连续7天登陆的用户。
表信息如下图
第一步:用户登录日期去重
这篇关于连续七天登录-在线人数最多的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!