题解 | #近一个月发布的视频中热度最高的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

全部评论

相关推荐

点赞 评论 收藏
分享
黑皮白袜臭脚体育生:简历条例统一按使用了什么技术实现了什么功能解决了问题或提升了什么性能指标来写会好些,如使用布隆过滤器实现了判断短链接是否存在,大大提升了查询速度
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务