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

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

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

平均播放进度

  • 三个注意点
    • 播放进度大于100%时,即播放时长>视频时长,直接等于100%
    • 保留2位,按比率值降序排序
    • 返回结果中出现%,使用concat函数对比率值与符号进行连接
  • 思路:与前一题一样,通过tb_user_video_lag计算每个用户的播放时长,左连接(这里内连接也可以)tb_video_info表取得视频时长,进而计算播放进度以及每个tag的平均播放进度。
select
    t2.tag,
    concat(t2.rate,'%') as avg_play_progress
from (
    select
        t.tag,
        round(avg(if(t.diff/ t.duration > 1, 1, t.diff/ t.duration)) * 100, 2) as rate
    from (
        select
            tvi.tag,
            tvi.duration,
            timestampdiff(second, tuvl.start_time, tuvl.end_time) as diff
        from tb_user_video_log as tuvl
            left join tb_video_info as tvi on tuvl.video_id = tvi.video_id
    ) as t
    group by t.tag
) t2
where t2.rate > 60
order by t2.rate desc;
全部评论

相关推荐

Ncsbbss:又想干活又想要工资,怎么什么好事都让你占了
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务