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