WITH tt AS ( SELECT user_id, date, MIN(date) OVER (PARTITION BY user_id) AS first_day FROM login ), ta AS ( SELECT user_id, date, first_day, IF(date = DATE_ADD(first_day, INTERVAL 1 DAY), 1, 0) AS if_log, IF(date = first_day, 1, 0) AS if_first FROM tt ), tb as( SELECT first_day AS date, ROUND( IFNUL...