select count(q2.device_id)/count(q1.device_id) avg_ret
from (
    select distinct device_id,date
    from question_practice_detail 
) as q1 left join (
    select distinct device_id, date
    from question_practice_detail
) as q2 on q1.device_id=q2.device_id and datediff(q2.date,q1.date)=1