select count(distinct b.device_id,b.date)/count(distinct a.device_id,a.date) as avg_ret #select * from question_practice_detail as a #a表示第一天来的表 left outer join question_practice_detail as b #b表示第二天来的表 on a.device_id=b.device_id and DAYOFYEAR(b.date)-DAYOFYEAR(a.date)=1 计算日期差的方法,还可以用dayofyear的方法