题解 | #平均播放进度大于60%的视频类别#
平均播放进度大于60%的视频类别
https://www.nowcoder.com/practice/c60242566ad94bc29959de0cdc6d95ef
select tag, concat(round(avg(if(timestampdiff(second, start_time, end_time) > duration, 1, timestampdiff(second, start_time, end_time) / duration)) * 100, 2), '%') avg_play_progress from tb_user_video_log a left join tb_video_info b on a.video_id = b.video_id group by tag having avg(if(timestampdiff(second, start_time, end_time) > duration, 1, timestampdiff(second, start_time, end_time) / duration)) > 0.6 order by 2 desc
本人没有使用子查询,而是用表连接,直接对一整个大表进行查询;值得注意的是,保留两位小数的时候,应该先乘100再round,这样才能保证数值准确!以下是具体步骤: