牛客网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的格式

相关推荐
123过去4 小时前
mdb-sql使用教程
linux·网络·数据库·sql
敬业小码哥6 小时前
记一次:sqlit3恢复database disk image is malformed
数据库·sql·sqlite3
小江的记录本7 小时前
【Java】Java核心关键字:final、static、volatile、synchronized、transient(附《面试高频考点》)
java·开发语言·spring boot·后端·sql·spring·面试
mygljx7 小时前
oracle 12c查看执行过的sql及当前正在执行的sql
java·sql·oracle
蓝黑20207 小时前
SQL的update语句更新顺序的坑
数据库·sql·mysql
山峰哥8 小时前
《解锁SQL高效查询:从索引设计到执行计划优化》
服务器·数据库·sql·oracle·性能优化
qq_283720058 小时前
MySQL实战(七):日常运维 SQL汇总
运维·sql·mysql
hopsky8 小时前
ClickHouse SQL 在 Java 中的校验方法
java·sql·clickhouse
SelectDB技术团队9 小时前
从两套系统到一条 SQL:SelectDB search() 搞定日志的搜索与分析
数据库·数据仓库·sql·开源
FITA阿泽要努力9 小时前
《SQL如何在项目中安全查询》
数据库·sql