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