1、按照login_time去重,去掉一天内多次登录记录,然后用rnn模拟窗口函数的row_number
select date_format(login_time,'%Y-%m-%d') as login_time, case when user_id = @last_user then @rn := @rn + 1 else @rn := 1 end as rnn, @last_user := user_id as user_id from (select distinct date_format(login_time,'%Y-%m-%d') as login_time,user_id from u_user_events as c) as a, (select @last_user := '', @rn := 0) as b order by user_id, login_time
2、多层嵌套后即可得出每个用户连续登录的天数记录 select user_id, count(*) as days_count from (select date_format(login_time, '%Y-%m-%d') as login_time, case when user_id = @last_user then @rn := @rn + 1 else @rn := 1 end as rnn, @last_user := user_id as user_id from (select distinct date_format(login_time, '%Y-%m-%d') as login_time, user_id from u_user_events as c) as a, (select @last_user := '', @rn := 0) as b order by user_id, login_time) as d group by user_id,date_add(date_format(login_time,'%Y-%m-%d'),interval -rnn day)