结果:
select u.video_id,
round(avg(case when timestampdiff(second,u.start_time,u.end_time)>= v.duration then 1 else 0 end),3) avg_comp_play_rate
from tb_user_video_log u inner join tb_video_info v on v.video_id=u.video_id
where year(start_time)=2021
and year(end_time)=2021
group by u.video_id
order by avg_comp_play_rate desc
-----使用case when函数,对完播的标记为1,未完播的为0,然后用avg()函数求平均
使用year()函数确定年份
TIMESTAMPDIFF(unit,begin,end);
TIMESTAMPDIFF函数返回begin-end的结果,其中begin和end是DATE或DATETIME表达式。
MICROSECOND 微秒
SECOND 秒
MINUTE 分钟
HOUR 小时
DAY 天
WEEK 周
MONTH 月份
QUARTER
YEAR 年份------