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

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

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

-- 需求:计算各类视频的平均播放进度,将进度大于60%的类别输出。 对需求进行拆解如下:
-- 1、以互动表为左表,使用left join以video_id为关联条件,匹配右表中每个视频对应的类别和播放时长;
-- 2、计算播放进度:①使用timestampdiff函数获取每个视频开始时间和结束时间之间对应的秒数;②再通过if函数将实际播放时长与时长进行判断,如果实际播放时长>时长,就记录为1,否则记录为0;③使用avg计算对应的播放进度;④使用round函数与concat函数将结果呈现为百分比形式
-- 3、使用group by对类别进行分组统计 
-- 4、使用having语句,筛选出播放进度大于60%的内容

select 
tag 
,concat(round(avg(if(timestampdiff(second,start_time,end_time)>duration,1,timestampdiff(second,start_time,end_time)/duration))*100,2),'%') as avg_play_progress 
from tb_user_video_log t1 
left join tb_video_info t2 
on t1.video_id = t2.video_id 
group by tag 
having round(avg(if(timestampdiff(second,start_time,end_time)>duration,1,timestampdiff(second,start_time,end_time)/duration)),2) > 0.6000 
order by avg_play_progress desc 

全部评论

相关推荐

04-28 11:34
西北大学 运营
牛客4396号:不好意思,这个照片猛一看像丁真
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务