牛客SQL专项练习|SQL156各个视频的平均完播率

SQL156各个视频的平均完播率

链接:SQL156各个视频的平均完播率
视频完播率 = 完成播放次数/总播放次数
首先让两个表进行内连接,条件是两个表的video_id相等,播放视频的年份是2021。之后以video_id为依据进行分组,分别获取完整播放的次数和总的播放次数。

select a.video_id ,
round(sum(if(end_time-start_time>=duration,1,0))/count(start_time),3)  avg_comp_play_rate
from tb_user_video_log a  inner JOIN tb_video_info b on a.video_id = b.video_id
where year(start_time)=2021 
group by a.video_id
order by avg_comp_play_rate desc;

用到的函数有
year(‘2023-07-01’)用来获取日期的年份返回一个整数
round(expression,decimal_places)对expresssion进行四舍五入并保留decimal_places个小数。
if和case语句用来判断和分支

if()函数

IF(condition, value_if_true, value_if_false)
if(end_time-start_time>=duration,1,0)

case表达式

//第一种形式
CASE expression
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    [ELSE result]
END
//第二种形式
CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    [ELSE result]
END
case when win='胜' then 1 else 0 end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值