select tag,concat(round(avg(case when TIMESTAMPDIFF(second, start_time, end_time)<=duration
                   then TIMESTAMPDIFF(second, start_time, end_time)/duration
               else 1 end)*100,2),'%') as AVG_play_progress
from tb_user_video_log vid
    join tb_video_info info
    on vid.video_id=info.video_id

group by tag
having SUBSTRING_INDEX(AVG_play_progress,"%",1)>60
order by AVG_play_progress desc