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

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

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

# 最近无播放天数=最近播放日期-视频的最近播放日期
# 先近一个月获取每个视频的视频完播率、点赞数、评论数、转发数、视频最近播放日期、最大播放日期等信息作为临时表A
WITH A AS(
select 
a.video_id 
,avg(if(timestampdiff(second,start_time	,end_time) >= duration ,1,0)) as all_rate  -- 完播率
,sum(if_like) as like_cnt -- 点赞数
,count(comment_id) as  comment_cnt -- 评论数
,sum(if_retweet) as retweet_cnt -- 转发数
,datediff((select max(end_time) from tb_user_video_log),max(end_time)) as f  -- 最近无播放天数
from tb_user_video_log a 
left join tb_video_info b 
on a.video_id = b.video_id 
where datediff((select max(end_time) from tb_user_video_log),release_time) <= 29
group by a.video_id) 

-- 计算各类视频的热度
select 
video_id 
,round((100*all_rate+5*like_cnt+3*comment_cnt+2*retweet_cnt)*(1/(f+1)),0) as hot_index -- 热度 
from A  
order by hot_index desc 
limit 3 




全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务