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 join question_practice_detail as q2//形成q1为主表,q2为q1和q2交集的两部分 on q1.device_id=q2.device_id and datediff(q1.date,q2.date)=1//datediff();两个时间的差值