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

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

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

-- 思路:依次计算出完播率,点赞数,评论数,转发数,新鲜度
-- 1. 完播率计算方式:timestampdiff函数
-- 2. 新鲜度,需要所有视频最新的end_time作为当前时间ct,和每个视频最新的end_time作差,得到未播放天数
-- 3. 过滤条件:同样需要所有视频最新的end_time作为当前时间ct,realse_time为ct近1个月的时间

with v1 as (
select
    t1.video_id,
    sum(case when timestampdiff(second,start_time,end_time) >= duration then 1 else 0 end) / count(start_time) as complete_rate,
    sum(if_like) as month_likes,
    sum(case when comment_id is null then 0 else 1 end) as month_comments,
    sum(if_retweet) as month_retweets,
    1 / (1 + timestampdiff(day, max(date(end_time)), max(ct))) as fresh_index
from tb_user_video_log t1
left join tb_video_info t2 on t1.video_id = t2.video_id
left join (select max(date(end_time)) as ct from tb_user_video_log ) t3 on 1=1
where date(release_time) between date_add(date_sub(ct, interval 1 month), interval 1 day) and ct
group by t1.video_id
) 
select
    video_id,
    round(fresh_index * (100 * complete_rate + 5 * month_likes + 3 * month_comments + 2 * month_retweets), 0) as hot_index
from v1
order by hot_index desc
limit 3;
    
全部评论

相关推荐

点赞 评论 收藏
分享
2024-12-31 09:44
武汉理工大学 Java
程序员牛肉:暑假实习是面向大三招收的哦。你才27届不用急哦。 第一点:在简历的实习板块中简单描述一下你的业务,你说你做了什么什么模块,那你这个模块是在哪个项目中的?简单介绍一下你做的模块所隶属的项目。项目那块挖的还是不够深,先不用着急更新简历,可以再沉淀个四五天。 实习要是让面试官觉得是包装出来的话,是一件很严重的问题,说难听点就是造假。互联网很看重诚信问题,你一旦出现了这种诚信问题,基本这辈子就距离大厂无缘了 2.不要贴任何链接了,没啥用而且很影响美观。有的时候让面试管看着顺不顺眼也是一个是否约你面试的影响因素。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务