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

各个视频的平均完播率

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

# 计算2021年里有播放记录的每个视频的完播率(结果保留三位小数),并按完播率降序排序
# 明确问题:计算有播放记录的每个视频的完播率
# 完播率计算公式为结束观看时间与开始播放时间的差>=视频时长时
# 这个时候就可以用到timestampdiff函数得出
# timestampdiff(second,b.start_time,b.end_time) >=a.duration 这部分作为完成播放,再用条件判断语句求和
tips:timestampdiff(时间类型,date1,date2) 计算date2-date1的差值返回所规定的时间类型,如果month,year,second等
# sum(case when timestampdiff(second,b.start_time,b.end_time) >=a.duration then 1 else 0 end)
# 然后再把两次表连接起来得出最终结果
  • select a.video_id,round(sum(case when timestampdiff(second,b.start_time,b.end_time) >=a.duration then 1 else 0 end)/count(b.id),3)
  • as avg_comp_play_rate
  • from tb_video_info as a
  • join tb_user_video_log as b
  • on a.video_id=b.video_id and year(b.start_time)=2021
  • group by a.video_id
  • order by avg_comp_play_rate desc















全部评论

相关推荐

不愿透露姓名的神秘牛友
09-25 13:45
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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