所有跨日期登陆的都记为1,然后去重,最后统计 select round(sum(rank)*1.0/count(distinct user_id),3) from (select distinct user_id,rank from (select t1.user_id,t1.date,t2.date,case when date(t1.date,'+1 day')=t2.date then 1 else 0 end as rank from login t1 join login t2 on t1.user_id=t2.user_id)) as t3