题解 | #各个视频的平均完播率#
各个视频的平均完播率
http://www.nowcoder.com/practice/96263162f69a48df9d84a93c71045753
题目主要信息
- 计算2021年里有播放记录的每个视频的完播率(结果保留三位小数),并按完播率降序排序
问题拆分
- 2021年有播放记录
- 结束观看时间与开始播放时间的差>=视频时长时,视为完成播放
- 结束观看时间与开始播放时间的差 知识点:TIMESTAMPDIFF()
- 视频完播率=完成播放次数/总播放次数
代码
select
uvl.video_id,
round(sum(if(timestampdiff(second,start_time,end_time)>=duration,1,0))/count(*),3) avg_comp_play_rate
from tb_user_video_log uvl
left join
tb_video_info vi
on
uvl.video_id=vi.video_id
where
year(start_time)=2021
group by
uvl.video_id
order by avg_comp_play_rate desc