mysql查询最近连续登录和累计登录
这条sql写了一天,百度无数,终于摸到点门路 需求是查询从当前日期向前推的连续登录,比如一个用户他今天登录了,昨天没登,连续登录为1 他昨天前天都登录了,今天没登录,连续登录为0 SELECT user_id, MIN(created_ymd) as start, MAX(created_ymd) as end, (MAX(created_ymd)-MIN(created_ymd))+1 as day_rank #最大的连续日期减去最小的日期=连续登录天数 FROM ( SELECT user_id, created_ymd, IF ( @user_id = created_ymd , @rn := @rn + 1, @rn := 1 ) AS con_col, @rwn :=@rwn + 1 AS help_col , @user_id := created_ymd + 1 FROM (SELECT * from datacenter.prod_ods_useronlinetime GROUP BY user_id,created_ymd )d, #先把数据格式优化下,去掉重复数据,因为这个表里一个用户会有多条重复数据,只是时分秒不一样,主要是用来统计用户在线时长的 (SELECT @user_id := '' ,@rn := 0 ,@rwn := 0 ) a #WHERE