select DISTINCT tag, CONCAT(ROUND(sum(jindu)/sum(duration)*100,2),'%') avg_play_progress FROM (select DISTINCT a.uid, a.video_id, case when timestampdiff(second,a.start_time,a.end_time)< b.duration THEN timestampdiff(second,a.start_time,a.end_time) ELSE b.duration end as jindu, b.tag, b.durat...