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

各个视频的平均完播率

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

SELECT
DISTINCT 
video_id,
ROUND(finished_num/total_num, 3) AS avg_comp_play_rate

FROM(
	SELECT
	video_id,
	IF((TIME_TO_SEC(end_time) - TIME_TO_SEC(start_time)) - duration >= '0', 1 , 0) AS mark,
	SUM(IF((TIME_TO_SEC(end_time) - TIME_TO_SEC(start_time)) - duration >= '0', 1 , 0)) OVER(PARTITION BY video_id) AS finished_num,
	COUNT(*) OVER(PARTITION BY video_id) AS total_num
    
	FROM
	tb_user_video_log AS uv  

	LEFT JOIN
	tb_video_info AS v
	USING (video_id) 

	WHERE YEAR(end_time) = '2021') AS a

    ORDER BY avg_comp_play_rate DESC

全部评论

相关推荐

码农索隆:有点耳熟,你们是我教过最差的一届
点赞 评论 收藏
分享
07-11 11:15
中南大学 Java
好可爱的hr姐姐哈哈哈哈
黑皮白袜臭脚体育生:兄弟们貂蝉在一起,吕布开了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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