题解 | #平均播放进度大于60%的视频类别#
平均播放进度大于60%的视频类别
http://www.nowcoder.com/practice/c60242566ad94bc29959de0cdc6d95ef
先将每个用户每个视频的播放进度统计出来 再按类别划分求他们的进度大于60%的类别
犯了1个错误:
1.我觉得最关键的是没有仔细看注释,只看了问题,导致没有进度没有写得更充分,也导致> 0.6写的1是>=0.6 这就导致了另一个错误,就是:
> =号分开写了,这样语句的含义就发生了歧义 也导致写完了代码却没有排序
select vi.tag,
concat(round(avg(t1.jd) * 100 ,2),'%') as avg_play_progress
from
(
select video_id,
if(timestampdiff(second,vl.start_time,vl.end_time) / vi.duration > 1,1,timestampdiff(second,vl.start_time,vl.end_time) / vi.duration) as jd
from tb_user_video_log vl
join tb_video_info vi using(video_id)
) t1
join tb_video_info vi using(video_id)
group by vi.tag
having avg(t1.jd) > 0.6
order by avg_play_progress desc