select 
count(b.device_id)/count(*)
from (
select device_id,date 
from question_practice_detail 
group by device_id,date
)a
left join (
select device_id,date 
from question_practice_detail 
group by device_id,date
)b
on a.device_id=b.device_id and a.date=date_sub(b.date,interval 1 day)