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

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

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

select
    t1.tag,
	## 先将小数乘以100,再利用cast函数转换数据格式,利用decimal设置为两位小数,最后在利用concat函数拼接上百分号
	concat(cast(avg(process)*100 as Decimal(16,2)) ,"%")	`avg_play_progress`
from
    (
        select
		##选出后面需要的字段
			## 以下两个字段推荐提交不用,但是测试最后带一下,好检查问题
            tuvl.start_time,
            tuvl.end_time,
			## 算出该用户这次看某个视频的连续时间(为了和后面视频时间做比较)
            unix_timestamp (end_time) - unix_timestamp (start_time) `subtime`,
            tvi.duration,
            ## 计算播放进度(判断是不是超过了视频的时间,如果超过设置为1)
            if((unix_timestamp (end_time) - unix_timestamp (start_time))/tvi.duration>1,1,(unix_timestamp (end_time) - unix_timestamp (start_time))/tvi.duration) `process`,
            tvi.tag
        from
            tb_user_video_log tuvl
			## 直接内连接,减少数据量
            inner join tb_video_info tvi on tuvl.video_id = tvi.video_id 
    ) t1
	## 按照视频分组
group by
    t1.tag
    having avg(process)>0.6
	## 按照视频播放率降序排序
    order by avg_play_progress desc

#纯粹的学习分享##求大佬指教#
全部评论

相关推荐

09-01 09:00
已编辑
四川旅游学院 运营
牛客55195891...:主要是专业不好,别的没毛病
牛客解忧铺
点赞 评论 收藏
分享
点赞 评论 收藏
分享
10-11 14:44
济南大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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