select *
from(

#2、根据展示结果挑选展示字段#
select t1.tag,
#2.1、①先求各tag中不同video的播放时长(timestampdiff(second,t2.start_time,t2.end_time)),若播放时长>视频本身时长(case when timestampdiff(second,t2.start_time,t2.end_time) > t1.duration),则返回播放进度100%(then 1,后面还会×100再转化成%形式),若不符合则返回播放时长本身/视频时长(timestampdiff(second,t2.start_time,t2.end_time)/t2.duration);②此外,由于刚才计算的是“各tag”中“不同video”的“播放进度(播放进度=播放时长÷视频时长)”,在此基础上,计算“各tag”的“平均播放进度”【avg((case when timestampdiff(second,t2.start_time,t2.end_time) > t1.duration then 1 else timestampdiff(second,t2.start_time,t2.end_time) / t1.duration end))】,③然后保留2位小数之后【round(xxx * 100,2)】,④将结果转换成%形式【concat(xxx,'%'),要提前*100】#
④concat(③round(②avg(①case when timestampdiff(second,t2.start_time,t2.end_time) > t1.duration then 1 else timestampdiff(second,t2.start_time,t2.end_time) / t1.duration end) * 100,2),'%') as avg_play_progress

#1、确定需求来源的数据表(各类视频👉tag👉tb_video_info;播放进度=播放时长÷视频时长*100%👉播放时长=end_time-start_time👉tb_user_video_log)#
from tb_video_info as t1
left join tb_user_video_log as t2
on t1.video_id = t2.video_id

#3、按照t1.tag进行分组统计#
group by 1) as t3

#4、“将进度大于60%的类别输出”👉“t3.avg_play_progress > '60.00%'”(注意:此处的百分数所在的字段格式为“字符”,因此需要用上引号括起来)#
where t3.avg_play_progress > '60.00%'

#5、对条件筛选后的数据按照t3.avg_play_progress从大到小进行排序#
order by t3.avg_play_progress desc;