--简单写法,group by 加上datediff
select 
tb.cid,
count(pb.id) as pv,
sum(timestampdiff(minute,start_time,end_time)) as time_len
from play_record_tb pb inner join course_info_tb tb 
on pb.cid=tb.cid
where
datediff(date(start_time),date(release_date))<=6
group by tb.cid
having avg(score)>=3
order by pv desc,time_len desc
limit 3