题解 | #各个视频的平均完播率#
各个视频的平均完播率
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一下