DATE_ADD(q1.date, interval 1 day)计算出“次日”
SELECT count(distinct q2.device_id,q2.date)/count(distinct q1.device_id,q1.date) as avg_ret
FROM question_practice_detail as q1 
left outer join question_practice_detail as q2
ON q1.device_id = q2.device_id 
AND  q2.date = DATE_ADD(q1.date, interval 1 day)

datediff(q2.date,q1.date)=1计算出间隔1天

count(distinct colume_name)去除重复项