题解 | #各个视频的平均完播率#

各个视频的平均完播率

http://www.nowcoder.com/practice/96263162f69a48df9d84a93c71045753

求 2021年的 每个视频 完播率: (结束时间-开始时间)=duration的视频 / 总的视频 降序

select video_id,

   round(avg(if(timestampdiff(second,vl.start_time,vl.end_time) >= vi.duration,1,0)),3) as avg_comp_play_rate
   #round(count(if(timestampdiff(second,vl.start_time,vl.end_time) >= vi.duration,1,null)) / count(vl.video_id),3) as avg_comp_play_rate

from tb_user_video_log vl

join tb_video_info vi using(video_id)

where year(vl.start_time) = 2021

group by vl.video_id #vl.id

order by avg_comp_play_rate desc;

这题出现了五个错误:

1.起初分类的时候使用的是 vl.id 以为这样直接分类的是每个人的完成情况 其实写到这一步的时候忽略了起初要求的什么,所以才会导致这个错误

2.第四行的分母也使用错了count里面的量,当时使用的是vl.id和groupby 犯下的错误是同样的

3.视频完播率 起初如思路所示,写的是结束减开始的时间=duration,现在想来我觉得未必如此,如果用户倍速播放,或者他看到一半就暂停去刷评论了,再或者点开了该视频没有暂停就放下手机去干别的了,那该如何参考?

4.想先写count然后再写round的,但是因为count这段语句太长了,导致后面把这个条件给忘记了。

5.没有先看清题目时间差应该是second还是minute,导致起初求的是minute的差值

优化:就是直接用平均数函数avg来快速求完播率,而且题目也给了这个信息可以使用avg来求解了,因为as的就是avg_xxxxxx

全部评论

相关推荐

鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
来个厂收我吧:首先,市场侧求职我不是很懂。 但是,如果hr把这份简历给我,我会觉得求职人不适合做产品经理。 问题点: 1,简历的字体格式不统一,排版不尽如人意 2,重点不突出,建议参考star法则写个人经历 3,印尼官方货币名称为印度尼西亚卢比(IDR),且GMV690000印尼盾换算为305人民币,总成交额不高。 4,右上角的意向职位在发给其他公司时记得删除。 5,你所有的经历都是新媒体运营,但是你要投市场营销岗位,jd和简历不匹配,建议用AI+提示词,参照多个jd改一下经历内容。 修改建议: 1,统一字体(中文:思源黑体或微软雅黑,英文数字:time new romans),在word中通过表格进行排版(b站学) 2,校招个人经历权重:实习经历=创业经历(大创另算)>项目经历>实训经历>校园经历 3,请将项目经历时间顺序改为倒序,最新的放最上方。 4,求职方向不同,简历文字描述侧重点也需要不同。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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