select tag,
    concat(round(avg(play_progress*100/duration),2),'%') as avg_play_progress
from (
    select tag,duration,
        if(timestampdiff(second,start_time,end_time)>duration,duration,timestampdiff(second,start_time,end_time)) as play_progress
    from tb_user_video_log u
    left join tb_video_info v
    on u.video_id=v.video_id) as uv
group by tag
having avg(play_progress*100/duration)>60
order by avg_play_progress desc