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

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

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

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  a 
join tb_video_info b 
on a.video_id=b.video_id
group by tag 
having substr(avg_play_progress,1,4)>60 
order by avg_play_progress DESC

这里新加的函数为:timestampdiff 函数,用来计算两个日期的差值,第一个是unit,第二和第三是开始时间和截止时间

if 时间差值大于视频总时长,取1,如果小于则算出时间差值/总时长得到 总共的看视频完成率的数据, 平均一下,保留两位小数,concat 把百分号连起来, 两个表是join链接,having是可以聚合函数筛选,可以将上面已经分组的来进行筛选,可以用select里的别名, 最后avg_play_progress 降序

全部评论

相关推荐

06-25 09:33
厦门大学 Java
程序员饺子:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司7个岗位
点赞 评论 收藏
分享
06-12 16:23
已编辑
小米_软件开发(准入职员工)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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