SELECT
round(
sum( CASE WHEN date = date_add( d, INTERVAL 1 DAY ) THEN 1 ELSE 0 END )* 1
/ sum( CASE WHEN date = d THEN 1 ELSE 0 END ),
3)
FROM
( SELECT *, min( date ) over ( PARTITION BY user_id ) d FROM login ) AS t