select round(avg(if(t2.device_id is not null, 1, 0)), 4) as avg_ret from ( SELECT DISTINCT device_id, date FROM question_practice_detail ) t1 left join ( SELECT DISTINCT device_id, date FROM question_practice_detail ) t2 on t1.device_id = t2.device_id and t2.date = date_add(t1.date, interval 1 day) ...