SELECT tag ,CONCAT(ROUND(100*AVG(video_rate),2),'%') AS avg_play_progress FROM ( SELECT video_id ,min(tag) AS tag ,AVG(rate) AS video_rate FROM ( SELECT t1.video_id ,IF(timestampdiff(SECOND,start_time,end_time)/duration>1,1,timestampdiff(SECOND,start_time,end_time)/duration) AS rate ,tag FROM tb_...