虽然sql不雅观,但是就要和大伙不一样,卷死大伙

select round((select count(1)
        from login l1
                 join (
            select user_id, min(date) mdate
            from login
            group by user_id
        ) t on l1.user_id = t.user_id and l1.date = date_add(t.mdate, interval 1 day)) /
       (select count(distinct user_id) from login),3) as p;