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

各个视频的平均完播率

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

哭泣,我写完之后发现大家的方法都比我简单。

select a.video_id,round(IFNULL(b.finish,0)/a.total,3) 完播率
from (select video_id,count(uid) total --每个视频总观看次数
from tb_user_video_log
group by video_id) a
left join (select d.video_id,count(c.id) finish --每个视频完播次数
from tb_video_info d 
left join tb_user_video_log c 
on c.video_id=d.video_id
where year(c.start_time)='2021' and c.end_time-c.start_time>=d.duration
group by d.video_id) b
on a.video_id=b.video_id

我的思路是,select一张包含每个视频总观看次数的表,在select一张包含每个视频完播次数的表,然后join一下

全部评论

相关推荐

鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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