题解 | #平均播放进度大于60%的视频类别#

平均播放进度大于60%的视频类别

http://www.nowcoder.com/practice/c60242566ad94bc29959de0cdc6d95ef

问题:计算各类视频的平均播放进度,将进度大于60%的类别输出。

注: 播放进度=播放时长÷视频时长*100%,当播放时长大于视频时长时,播放进度均记为100%。 结果保留两位小数,并按播放进度倒序排序。

思考步骤:
  1. 各类视频
group by
  1. 平均播放进度
avg
  1. 大于60%
where /having
考虑到先聚合又条件即 选择having 
  1. 播放时长
考虑到视频时长以秒为单位,故second
timestampdiff(second,t1,t2)

  1. 大于100% 按100%算 有个判断
case 
when  then
else end
或者 if
  1. 其他考点
保留两位
round(列,2)
加上%
concat(数字,'%')
降序
order by desc
完整答案
select
tag,
concat(round(avg(play_progress)*100,2),'%') as avg_play_progress
from
(select
t2.tag as tag,
case when timestampdiff(second,t1.start_time,t1.end_time)/t2.duration >1 then 1
 else timestampdiff(second,t1.start_time,t1.end_time)/t2.duration end play_progress
from
tb_user_video_log t1 left join 
tb_video_info t2 on 
t1.video_id=t2.video_id) s
group by tag
having avg(play_progress)>0.6
order by avg_play_progress desc


全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:52
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务