题目思路: 
     有两个表 tb_user_video_log和tb_video_info.     
     1 观察两个表的结构可知 : uid与viedo_id是一对多的关系    ;  video_id与start_time是多对多关系    ;   video_id与end_time是多对多关系    ;   video_id与duration是多对一关系
     2 分析题目-计算2021年里有播放记录的每个视频的完播率每个视频的完播率,可知:
                2021年:    用start_time         
                有播放记录(总播放次数) : 统计  tb_user_video_log表每个video_id的行数
                完播率:   完成播放次/总播放次数=(结束观看时间-开始播放时间>=视频时长时)/总播放次数
上代码:
select  
    video_id,
    round(sum(panduan)/count(*),3) as     avg_comp_play_rate
from
    (select 
        a.video_id,
        if(timestampdiff(second,start_time,end_time)>=duration,1,0) as panduan
    from 
        tb_user_video_log a
        left join tb_video_info b
        on a.video_id=b.video_id
    where 
        year(start_time)='2021'
    ) aa
group by 
    video_id
order by 
    avg_comp_play_rate desc