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

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

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

select v.video_id,
round((100*avg(if(timestampdiff(second,u.start_time,u.end_time)<v.duration,0,1))+5*sum(u.if_like)+3*count(u.comment_id)+2*sum(u.if_retweet))/(1+datediff(max(max(u.end_time)) over(), max(u.end_time))),0) hot_index
from tb_user_video_log u
left join
tb_video_info v
on u.video_id=v.video_id
where datediff((select max(end_time) from tb_user_video_log),v.release_time)<=29
group by v.video_id
order by hot_index desc
limit 0,3
# select datediff('2021-09-05','2021-09-06') 返回-1


  • 是否大多数
  • 使用两层max分配全局最大值
  • 新鲜度的计算着重复习
  • timestampdiff是顺序是start_time, end_time
  • datediff的顺序是end_time,start_time
全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
2025-11-19 14:56
点赞 评论 收藏
分享
昨天 23:23
复旦大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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