with temp1 as (SELECT tag,video_id,if(TIMESTAMPDIFF(second,start_time,end_time)>=duration,duration,TIMESTAMPDIFF(second,start_time,end_time)) as gap,duration from tb_user_video_log JOIN tb_video_info using(video_id))

SELECT tag, concat(ROUND(avg(gap/duration)*100,2),'%') as avg from temp1 GROUP BY video_id having avg(gap/duration) > 0.6 ORDER BY avg desc