with t as (
select user_id, min(date) as first_login
from login
group by user_id
), t1 as (
select first_login, round(count(login.user_id)/count(1), 3) as p
from t left join login
on t.user_id=login.user_id and datediff(login.date, first_login)=1
group by first_login
)
select t2.date, ifnull(p, 0) as p
from (select distinct date from login) t2
left join t1 on t2.date=t1.first_login

京公网安备 11010502036488号