连续登录问题
建表,数据
insert into data1 VALUES
(01,"2021-02-28"),
(01,"2021-03-01"),
(01,"2021-03-02"),
(01,"2021-03-04"),
(01,"2021-03-05"),
(01,"2021-03-06"),
(01,"2021-03-08"),
(02,"2021-03-01"),
(02,"2021-03-02"),
(02,"2021-03-03"),
(02,"2021-03-06"),
(03,"2021-03-06")
sql
select
id,
count(*),
min(login_date),
max(login_date)
from
(select
*,
DATE_SUB(login_date,interval rn day) diffDate
from
(select
id,
login_date,
ROW_NUMBER() over(partition by id order by login_date asc) rn
from
data1) t1
) t2
group by t2.id,t2.diffDate