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

相关推荐
消失的旧时光-19432 小时前
第四篇(实战): 订单表索引设计实战:从慢 SQL 到毫秒级
java·数据库·sql
你才是臭弟弟10 小时前
时序数据库(TDengine TSDB)基本SQL使用
sql·时序数据库·tdengine
Gauss松鼠会12 小时前
【openGauss】学习 gsql 命令行的使用
数据库·sql·database·opengauss
Gauss松鼠会14 小时前
【openGauss】openGauss 如何进行数据库例行维护
数据库·sql·database·opengauss
l1t14 小时前
利用DeepSeek辅助翻译clickhouse SQL为DuckDB 格式求解Advent of Code 2025第10题 电子工厂 第二部分
数据库·人工智能·sql·clickhouse·duckdb
DarkAthena14 小时前
【GaussDB】分析函数性能优化案例-row_number改写
数据库·sql·oracle·性能优化·gaussdb
踢足球092915 小时前
寒假打卡:2026-01-21
数据库·sql
麦聪聊数据15 小时前
基于SQL+CDC构建MySQL到ClickHouse的实时链路
sql·mysql·clickhouse
IT大白15 小时前
6、数据库优化
数据库·sql
sg_knight16 小时前
SQL 中的 IFNULL 函数是什么?
数据库·sql·mysql·oracle·database·关系型数据库·db