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

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

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

-- 计算各类视频的平均播放进度,将进度大于60%的类别输出。
-- 播放进度=播放时长÷视频时长*100%,
-- 1、关联视频信息,计算播放时长 2、先计算每条视频播放进度,用小数表示 3、分类统计播放进度平均数,转换为分数 

select e.tag,concat(e.avg_progress,'%') avg_progress_p from (
SELECT 
    d.tag,
   round(AVG(d.play_progress)*100,2)
             avg_progress
FROM
    (SELECT 
        *,
            IF(play_duration >= duration, 1, play_duration / duration) play_progress
    FROM
        (SELECT 
        a.*,
            b.duration,
            b.tag,
            TIMESTAMPDIFF(SECOND, a.start_time, a.end_time) play_duration
    FROM
        tb_user_video_log a
    INNER JOIN tb_video_info b ON a.video_id = b.video_id) c) d
GROUP BY d.tag
HAVING avg_progress > 60
ORDER BY avg_progress DESC ) e;
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务