select 
    c.cid, 
    count(uid) as pv, 
    sum(timestampdiff(minute,start_time,end_time)) as time_len
from course_info_tb as c 
join play_record_tb as b 
on c.cid = b.cid
where datediff(start_time, release_date) < 7
group by c.cid
having avg(score) >=3
order by pv desc,time_len desc
limit 3;