题解 | #各个视频的平均完播率#
各个视频的平均完播率
https://www.nowcoder.com/practice/96263162f69a48df9d84a93c71045753
select a.video_id, round( sum(if (end_time - start_time >= duration, 1, 0)) / count(start_time), 3 ) as avg_comp_play_rate from tb_user_video_log a left join tb_video_info b on a.video_id = b.video_id where year (start_time) = 2021 group by a.video_id order by avg_comp_play_rate DESC
直接用if函数去处理 开始时间-结束时间 是否大于 播放时长
左链接关联两个表
得到具体播放video_id 和 播放完成率
最后加上题目原本的限制,2021 和 播放完成率的降序