题解 | #各个视频的平均完播率#

各个视频的平均完播率

http://www.nowcoder.com/practice/96263162f69a48df9d84a93c71045753

计算2021年里有播放记录的每个视频的完播率(结果保留三位小数),并按完播率降序排序

思考步骤
  1. 2021年即需要限定一下时间。
年:
year()
限定 2021
where year(start_time)=2021


  1. 完播率 题中有提示:视频完播率是指完成播放次数占总播放次数的比例。简单起见,结束观看时间与开始播放时间的差>=视频时长时,视为完成播放。
  • 即需要看下时间差与视频时长的对比
时间差函数 timediff(time1,time2) 返回结果 time1-time2
timediff(t1.end_time,t1.start_time)
  • 完播次数需要做次筛选
筛选函数
case when   then  
else  end

case 
when timediff(t1.end_time,t1.start_time)>=t2.duration then 1
else 0 end

求和函数  sum()
sum(case 
when timediff(t1.end_time,t1.start_time)>=t2.duration then 1
else 0 end)

  • 总播放次数
计数函数 count
count(start_time)
  1. 保留三位小数
round(列,3)
  1. 降序排序
order by desc
完整答案
select
t1.video_id,
round(sum(case 
when timediff(t1.end_time,t1.start_time)>=t2.duration then 1
else 0 end)/
count(t1.start_time),3) as avg_comp_play_rate
from
tb_user_video_log t1 left join 
tb_video_info t2 on
t1.video_id = t2.video_id
where year(start_time)=2021
GROUP BY t1.video_id
ORDER BY avg_comp_play_rate DESC
全部评论

相关推荐

oppo 应用软开 22*15+0.5*12
拿到了ssp完美:真的坎坷,但是你至少拿到这么多offer了!
点赞 评论 收藏
分享
10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
10-05 10:13
已编辑
HHHHaos:让这些老登来现在秋招一下,简历都过不去
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务