MySQL须知必回之连续性问题
select distinct 月,用户id from
(select *,
每个月登陆顺序 - coalesce(lag(每个月登陆顺序,1) over(partition by 月, 用户id order by 每个月登陆顺序),0) as 连续登陆天数
from (
select *,
lead(日期,1,'当月最后登陆日期') over(partition by 月, 用户id order by 每个月登陆顺序) as 用户当月下一个登陆日期
from (
select 用户id,month(日期) as 月,日期,
row_number() over (partition by month(日期), 用户id order by 日期) as 每个月登陆顺序
from 用户登陆记录表 ) as t1) as t2
where date_sub(用户当月下一个登陆日期,interval 1 day) <> 日期 or 用户当月下一个登陆日期 = '当月最后登陆日期' ) as t3
where 连续登陆天数 >= 2;
评论:
🎐: 大哥,你会达梦数据库嘛?
作者: 不会我都第一次听说,mysql orical hive熟悉这些,[捂脸哭]不好意思啊妹妹
Souler: 还可以用中文字段写吗