select count(if(datediff(b.date,a.date) = 1,a.device_id,null))/count(if(datediff(b.date,a.date) = 0,a.device_id,null)) avg_ret from ( select distinct device_id,date from question_practice_detail )a, ( select distinct device_id,date from question_practice_detail )b where a.device_id = b.device_id and a.date <= b.date