SELECT video_id, round((100*finish_rate+5*like_index+3*comment_index+2*retweet_index)/(fresh_index+1),0) hot_index FROM( SELECT a.video_id, sum(if(timestampdiff(second,a.start_time,a.end_time)-b.duration>=0,1,0))/count(a.video_id) finish_rate, sum(a.if_like) like_index, sum(if(a.comment_id is not null,1,0)) comment_index, sum(a.if_retweet) retweet_index, if(count(a.video_id)=0,datediff(date((select max(end_time) from tb_user_video_log)),date(b.release_time)), datediff(date((select max(end_time) from tb_user_video_log)),max(date(a.end_time)))) fresh_index FROM tb_user_video_log a left join tb_video_info b on a.video_id=b.video_id where DATEDIFF(date((select max(end_time) from tb_user_video_log)),DATE(b.release_time))<=29 group by a.video_id) fir_sheet order by hot_index DESC limit 0,3