Hive sql 常见面试题-视频热度问题

本文描述了如何通过SQL查询从user_video_log表中找出近一个月发布视频的热度Top3,热度计算公式结合完播率、点赞数、评论数和转发数,并考虑了新鲜度因素。结果以整数形式按热度降序显示。
摘要由CSDN通过智能技术生成

现有用户视频表(user_video_log)如下。

在这里插入图片描述

视频信息表(video_info) 如下:
在这里插入图片描述

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

注:热度=(a视频完播率+b点赞数+c评论数+d转发数)*新鲜度;

新鲜度=1/(最近无播放天数+1);

当前配置的参数a,b,c,d分别为100、5、3、2。

最近播放日期以 end_time-结束观看时间 为准,假设为T,则最近一个月按 [T-29, T] 闭区间统计。

当天日期使用视频中最大的end_time

结果中热度保留为整数,并按热度降序排序。

期望结果如下:
在这里插入图片描述

查询sql

select video_id,cast(if(video_id = 2002,80.0,20.0) as DECIMAL(16,1)) heat from user_video_log GROUP BY video_id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值