sql面试题之连续登陆问题以及连续登陆问题的扩展!!!

本文探讨了SQL中处理连续登陆天数的难题,通过两个实际需求——连续登陆不可隔天和可间隔一天的情况,提供了解决方案。利用排序、日期差值和LAG函数,解析了如何计算用户的最大连续登陆天数,帮助读者理解和应对此类问题。

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

最大连续登陆天数问题在SQL领域,不管是刚入门的小白还是工作几年的大牛给人的感觉就是比较棘手且细思极恐的问题,今天我们通过两个案例从不同角度去了解连续登陆问题以及连续登陆问题变化的场景。消除恐惧的最好办法就是面对恐惧,加油 !奥利给!

某游戏公司有两张用户登陆表分别为user_login01 和 user_login02,现有需求想要求出每个用户的最大连续登陆天数。用户表中有用户id
user_id 和登陆日期 login_date.
需求1:每个用户的最大连续登陆天数(日期之间不可以隔天即为连续登陆)
需求2:计算每个用户最大的连续登录天数,定义连续登录时可以间隔一天。(例如:2022-01-05、2022-01-06、2022-01-08、2022-01-10 最大连续登陆天数为4天)

需求1
数据准备

--创建表
CREATE TABLE user_login01
 (
  uid int, 
  login_date date
  );

--导入数据
insert into user_login01 values
 (1001,'2013-05-06')  
,(1001,'2013-05-07')
,(1001,'2013-05-08')
,(1001,'2013-05-09')
,(1001,'2013-06-23')
,(1001,'2013-06-24')
,(1001,'2013-06-25')
,(1001,'2013-06-26')
,(1001,'2013-06-27')
,(1002,'2013-07-06')
,(1002,'2013-07-07')
,(1002,'2013-07-08')
,(1002,'2013-07-09')
,(1002,'2013-08-01')
,(<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宇智波天坪小梁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值