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

教程https://www.bilibili.com/video/BV1vM4m1X7Ga/?spm_id_from=333.337.search-card.all.click&vd_source=01bee36d06fa0efc4887211e7d7c2dbd