我们在工作中或者面试时,可能会遇到求出用户连续登录天数、连续签到天数等问题,这篇文章就是用窗口函数比较巧妙的解决这个问题的。文章比较长,建议先收藏后观看+_+
首先是数据准备和处理
如下代码是创建用户登录表,插入用户登录数据
create table user_login(
user_id varchar(100),
login_time datetime);
insert into user_login values
(1,'2016-11-25 13:30:45'),
(1,'2016-11-24 13:30:45'),
(1,'2016-11-24 10:30:45'),
(1,'2016-11-24 09:30:45'),
(1,'2016-11-23 09:30:45'),
(1,'2016-11-10 09:30:45'),
(1,'2016-11-09 09:30:45'),
(1,'2016-11-01 09:30:45'),
(1,'2016-10-31 09:30:45'),
(2,'2016-11-25 13:30:45'),
(2,'2016-11-24 13:30:45'),
(2,'2016-11-23 10:30:45'),
(2,'2016-11-22 09:30:45'),
(2,'2016-11-21 09:30:45'),
(2,'2016-11-20 09:30:45'),