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

SELECT video_id, ROUND(cy/ca,3) as avg_comp_play_rate
FROM(
SELECT logt.video_id as video_id, SUM(IF(TIMESTAMPDIFF(SECOND, logt.start_time, logt.end_time) >= infot.duration, 1, 0)) OVER(PARTITION BY logt.video_id ORDER BY logt.video_id) as cy, COUNT(logt.video_id) OVER(PARTITION BY logt.video_id ORDER BY logt.video_id) as ca
FROM tb_user_video_log as logt
INNER JOIN tb_video_info as infot
ON logt.video_id = infot.video_id
WHERE YEAR(logt.start_time)="2021"
) as re
GROUP BY video_id, ROUND(cy/ca,3)
ORDER BY ROUND(cy/ca,3) DESC

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:11
点赞 评论 收藏
分享
练习生懒羊羊:开飞机把这个公司创飞吧
点赞 评论 收藏
分享
流浪的神仙:无恶意,算法一般好像都得9硕才能干算法太卷啦
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 12:05
俺不中了,BOSS遇到了一个hr,我觉得我咨询的问题都很正常吧,然后直接就被拒绝了???
恶龙战士:你问的太多了,要不就整理成一段话直接问他,一个一个问不太好
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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