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