题解 | #近一个月发布的视频中热度最高的top3视频#
近一个月发布的视频中热度最高的top3视频
https://www.nowcoder.com/practice/0226c7b2541c41e59c3b8aec588b09ff
with t1 as (select vl.video_id, if(timestampdiff(second, start_time, end_time)>=duration, 1, 0) as if_wan, date(end_time) dt, if_like, if_retweet, if(comment_id, 1, 0) as if_comment from tb_user_video_log vl left join tb_video_info vi using(video_id) where date(release_time) between date_sub((select max(date(end_time)) from tb_user_video_log), interval 29 day) and (select max(date(end_time)) from tb_user_video_log)), t2 as (select video_id, sum(if_wan)/count(*) as wan_rate, sum(if_like) as liken, sum(if_comment) as commentn, sum(if_retweet) as retweetn, 1/(datediff((select max(date(end_time)) from tb_user_video_log), max(dt))+1) as freshn from t1 group by video_id ) select video_id, round((100*wan_rate+5*liken+3*commentn+2*retweetn)*freshn, 0) as hot_index from t2 order by hot_index desc limit 3