牛客网SQL160

国庆期间每类视频点赞量和转发量_牛客题霸_牛客网

sql 复制代码
select *
from
(
select tag,dt,
sum(单日点赞量)over(partition by tag order by dt rows between 6 preceding and 0 following),
max(单日转发量)over(partition by tag order by dt rows between 6 preceding and 0 following)
from
(
select dt,tag,sum(if_like) 单日点赞量,sum(if_retweet) 单日转发量
from
(
    select id,video_id,if_like,if_retweet,
    date_format(start_time,'%Y-%m-%d') dt
    from tb_user_video_log
    where date_format(start_time,'%Y-%m-%d') between '2021-09-25' and '2021-10-03'
) a
join
(
    select video_id,tag
    from tb_video_info
) b
on a.video_id=b.video_id
group by dt,tag
) c
) d
where dt between '2021-10-01' and '2021-10-03'
order by tag desc,dt

注意点:

  1. date_format中%Y和%y好像不一样 ;

  2. 注意时间相关的函数,如果想当成数字取用要注意是不是带"-"的,小细节问题,如果带"-",你和数字直接去比较肯定不一样。

比较的时候一般用between and比较多

  1. 认识了mysql中三个时间相关的函数:

convert(start_time,char(10))

date_format(start_time,'%Y-%m-%d')

date(start_time)

结果都是2021-09-25的格式

相关推荐
麦聪聊数据1 小时前
智慧医疗数据互联互通:使用 QuickAPI 构建实时诊疗数据交换层
数据库·sql·安全
未来的旋律~4 小时前
sqlilabs注入靶场搭建与sql语句
数据库·sql
我真的是大笨蛋4 小时前
InnoDB行级锁解析
java·数据库·sql·mysql·性能优化·数据库开发
山茶花.5 小时前
SQL注入总结
数据库·sql·oracle
Mikhail_G7 小时前
Mysql数据库操作指南——排序(零基础篇十)
大数据·数据库·sql·mysql·数据分析
Gauss松鼠会9 小时前
【openGauss】openGauss 中一个数据库可以被多个用户访问
数据库·sql·性能优化·database·opengauss
weixin_4365250711 小时前
若依多租户版: 页面新增菜单, 执行菜单SQL
前端·数据库·sql
知识分享小能手13 小时前
Oracle 19c入门学习教程,从入门到精通,Oracle优化SQL语句 — 语法知识点与使用方法详解(16)
sql·学习·oracle
TimberWill14 小时前
常用sql【pgsql】——建表相关
数据库·sql