select tuvl.video_id, round(avg(if(tuvl.end_time-tuvl.start_time>=tvi.duration,1,0)),3) avg_comp_play_rate
from tb_user_video_log tuvl
left join
tb_video_info tvi
on tuvl.video_id=tvi.video_id
where year(tuvl.start_time)=2021
group by tuvl.video_id
order by avg_comp_play_rate desc
  • 使用日期直接相减得到播放时间
  • 利用avg和if配合输出完播率、
  • 注意题目要求是要2021的数据,使用year函数进行筛选