sql连续登录问题
今天刷到一个视频,需求是计算一个库表里,查询2022年1月份里连续三天登录的用户以及连续登录的时间段。
首先,t_login记录了用户每次登录的时间信息。
一天有多次登录行为,只需记录一条;
(使用函数导致索引失效)
select distinct uid,date(login_time) ymd
from t_login
where login_time between '2022-01-01 00:00:00' and timestamp '2022-01-31 23:59:59';
比较粗暴方式,将上面的表自关联三次,缺点,扩展性差。
select t1.uid,t1.ymd,t2.ymd,t3.ymd
from
(select distinct uid,date(login_time) ymd
from t_login
where login_time between '2022-01-01 00:00:00&

这篇博客探讨了如何在SQL中查询2022年1月份内连续三天登录的用户及其登录时间段。作者提供了两种方法:一种是通过自关联表实现,虽然简单但扩展性差;另一种是利用窗口函数,通过插值判断连续性,这种方法更高效。博客内容涉及到SQL查询技巧、日期处理和数据分组统计。
最低0.47元/天 解锁文章
8421

被折叠的 条评论
为什么被折叠?



