select
    count(device2) / count(device1) as avg_ret
from
    (
        select distinct
            t1.device_id as device1,
            t1.date as date1,
            t2.device_id as device2,
            t2.date as date2
        from
            question_practice_detail t1
            left join question_practice_detail t2 on t1.device_id = t2.device_id
            and datediff(t2.date, t1.date) = 1
        order by
            t1.device_id,
            t1.date
    ) t