题解 | #近一个月发布的视频中热度最高的top3视频#

近一个月发布的视频中热度最高的top3视频

https://www.nowcoder.com/practice/0226c7b2541c41e59c3b8aec588b09ff

-- 限制条件:近一个月 -->确定当前日期,以表中最大end_time的日期作为当前日期
-- 视频完播率:
-- 新鲜度 --> 最近无播放天数

select
video_id
,round((100*avg(if_complete) + 5*sum(if_like) + 3*sum(if_comment) + 2*sum(if_retweet))/(min(diff_day)+1), 0) as hot_index
from
(
    select
    log.video_id
    ,if(timestampdiff(second,start_time,end_time) >= duration, 1, 0) if_complete
    ,if_like
    ,if_retweet
    ,if(comment_id is null, 0, 1) if_comment
    ,datediff((select max(end_time) from tb_user_video_log), end_time) diff_day
    from tb_user_video_log log
    left join tb_video_info info 
    on log.video_id = info.video_id
    where datediff((select max(end_time) from tb_user_video_log),release_time) < 30
) t
group by video_id
order by (100*avg(if_complete) + 5*sum(if_like) + 3*sum(if_comment) + 2*sum(if_retweet))/(min(diff_day)+1) desc
limit 3

全部评论

相关推荐

魔法恐龙:这真得给个机会,面试的时候问问不吃饭78.5h怎么做到的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务