select date,
ifnull(
round(sum(case when (user_id, date) in (
select user_id, date_sub(date, interval 1 day)
from login
group by user_id
)
and (user_id, date) in (
select user_id, min(date)
from login
group by user_id
) then 1 else 0 end)
/sum(case when (user_id, date) in (
select user_id, min(date)
from login
group by user_id
) then 1 else 0 end), 3), 0) as p
from login
group by date
order by date



京公网安备 11010502036488号