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

各个视频的平均完播率

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 计数更加简单,也会但是就是想不到;使用了很笨的子查询

全部评论

相关推荐

10-11 17:45
门头沟学院 Java
走吗:别怕 我以前也是这么认为 虽然一面就挂 但是颇有收获!
点赞 评论 收藏
分享
死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务