题解 | #各个视频的平均完播率#
各个视频的平均完播率
https://www.nowcoder.com/practice/96263162f69a48df9d84a93c71045753
select
a.video_id,
round(
sum(if (end_time - start_time >= duration, 1, 0)) / count(start_time),
3
) as avg_comp_play_rate
from
tb_user_video_log a
left join tb_video_info b on a.video_id = b.video_id
where
year (start_time) = 2021
group by
a.video_id
order by
avg_comp_play_rate DESC
直接用if函数去处理 开始时间-结束时间 是否大于 播放时长
左链接关联两个表
得到具体播放video_id 和 播放完成率
最后加上题目原本的限制,2021 和 播放完成率的降序