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

各个视频的平均完播率

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

##先用video_id关联得出一个按照每条播放记录整理的字段为uid,video_id,开始时间,结束时间,视频时长的子表:
select uv.uid, uv.video_id, 
uv.start_time, uv.end_time, vi.duration 
from tb_user_video_log uv
left join tb_video_info vi
on uv.video_id=vi.video_id
where year(start_time)='2021'

##再按照video_id聚合,计算总播放量和完播量相除:
round(count(case when end_time-start_time>=duration then 1 else null end)/count(uid),3) as avg_comp_play_rate

##完整代码:
select video_id,
round(count(case when end_time-start_time>=duration then 1 else null end)/count(uid),3) as avg_comp_play_rate
from 
(select uv.uid, uv.video_id, 
uv.start_time, uv.end_time, vi.duration 
from tb_user_video_log uv
left join tb_video_info vi
on uv.video_id=vi.video_id
where year(start_time)='2021'
) a
group by video_id
order by 2 desc

全部评论

相关推荐

那一天的Java_J...:看工资定规模,钱多就叫大厂
点赞 评论 收藏
分享
鲁大牛:第一次美团笔试因为用豆包没做出来。第二次笔试之前重金充了一个gpt5pro的会员。结果第二次不考ai算法题了
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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