select
round(sum(case when rk = 1 and date_add(date,interval 1 day) = 第二天登录 then 1 else 0 end)/count(distinct user_id),3) p
from
(
select
user_id
,date
,row_number()over(partition by user_id order by date) rk
,lead(date,1,0)over(partition by user_id order by date) 第二天登录
from login
) a