题解 | #各个视频的平均完播率#
各个视频的平均完播率
https://www.nowcoder.com/practice/96263162f69a48df9d84a93c71045753
select * from ( select o1.video_id,round( ( select count(1) from tb_user_video_log o where o.video_id =t.video_id and ( o.end_time -o.start_time )>=t.duration and o.start_time like '2021%') /count(1),3) avg_comp_play_rate from tb_video_info t, tb_user_video_log o1 where o1.video_id =t.video_id and o1.start_time like '2021%' group by t.video_id )t1 order by t1.avg_comp_play_rate desc
羞愧,函数用时方知少
用仅有的加减乘除、配合group by 最终写出了这个答案;
注意的点 :1.限制的大条件 2021年!!
2.只要播放过的视频就要算完播率,所以要以播放表去用videoid去分组;
3.看到有其他同学使用的sum 配合case 计数更加简单,也会但是就是想不到;使用了很笨的子查询