牛客SQL大厂面试真题:SQL3 每类视频近一个月的转发量/率

编程代码

select b.tag
       ,sum(a.if_retweet) as retweet_cut
       ,round(sum(a.if_retweet)/count(a.id),3) as retweet_rate
from tb_user_video_log  as a 
join tb_video_info  as b 
using (video_id) 
where datediff((select max(end_time) from tb_user_video_log), a.end_time) <= 29 
group by b.tag 
order by retweet_rate desc;
;

知识点总结:

1、datediff函数的语法

   datediff(end_time, begin_time);

2、datediff函数与timestampdiff函数的区别
datediff函数:end_time在前, begin_time在后且只能计算日期差,计算原则: 只截取日期部分作差
timestampdiff函数:begin_time在前,end_time在后,有时间单位,可计算各种时间差,且计算原则:时间差不到24小时不算一天,不到60分钟不算一个小时,不到60秒不算一分钟。
timestampdiff函数的语法:

    timestampdiff(unit, begin_time, end_time);

unit有效单位:
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
3、注意
datediff((select max(end_time) from tb_user_video_log), a.end_time) <=29
直接用select提取的单个值时,外部要带括号;
包含今天在内的近30天,是小于等于29;
获取当前时间:select now()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值