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

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

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

with t1 as(
select *,date_sub(max_et,interval 29 day) haed_time 
from(
select tuvl.*,tvi.duration,tvi.release_time, 
date(max(end_time) over())as max_et
from tb_user_video_log tuvl
left join tb_video_info tvi using(video_id) 
) tmp 
),
-- 过滤掉非一个月内的数据,并打上是否完播的标签
t2 as(
select *,case when 
TIMESTAMPDIFF(SECOND,start_time,end_time) >=duration 
then 1 else 0 end as wb
from t1 where date(release_time) >= haed_time 
)
-- 按照影片分组求热度
select video_id,
round((100 *(sum(wb) / count(wb)) +
sum(if_like)*5 + count(comment_id)*3+
sum(if_retweet)*2 ) / (1+DATEDIFF(date(max(max_et)),date(max(end_time)))),0) h
from t2 group by video_id order by h desc limit 3

全部评论

相关推荐

05-07 19:10
已编辑
中国科学技术大学 C++
silly01:现在先去 momenta,8-9月去鹅找日常实习,八股文算法背好了你这随便进。不过建议补充一下后端知识,MySQL、Redis看下八股,再补个6824,加点go后台的技术栈,9月随便进大厂。CPP后端只能来WXG
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务