select
    p.cid,
    count(p.id) pv,
    sum(timestampdiff(minute,start_time,end_time)) time_len
from play_record_tb p left join course_info_tb c on p.cid=c.cid
where date(start_time) between'2022-01-01' and '2022-01-07'
group by p.cid
having avg(score)>=3
order by pv desc,time_len desc
limit 3