Top
今天是个好天气
Home
Go
MySQL
Redis
LeetCode
Hello World
常用SQL
将问题分解来思考怎么写
表与表之间怎么连接的,如何关联的
牛客刷题
SQL156.各个视频的平均完播率
关联用户-视频互动记录和短视频信息表:JOIN tb_video_info USING(video_id);
筛选2021年的记录:WHERE YEAR(start_time)=2021
按视频id分组:GROUP BY video_id
计算每条播放记录是否完成播放:
IF(TIMESTAMPDIFF(SECOND, start_time, end_time)>=duration, 1, 0)
计算完播率,完成播放为1,未完成播放为0,取平均即为完播率AVG(),配合group计算每一组的平均值
保留3位小数:ROUND(x, 3)
SQL157 平均播放进度大于60%的视频类别
关联表:JOIN tb_video_info USING(video_id);
筛选进度大于60%的类别:avg_play_progress > 60
按tag分组:GROUP BY tag
计算一个类别的播放率
判断超过duration记为1:case when timestampdiff(second,start_time,end_time)>=duration then 1
否则按照实际:else timestampdiff(second,start_time,end_time)/duration end