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

各个视频的平均完播率

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

全部评论

相关推荐

Hyh_111:像这种hr就不用管了,基本没啥实力,换一个吧
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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