牛客网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 小时前
使用阿里云的MaxCompute查询sql时报错:DruidPooledPreparedStatement: getMaxFieldSize error
sql·阿里云·odps
Lonely丶墨轩2 小时前
从登录入口窥见架构:一个企业级双Token认证系统的深度拆解
java·数据库·sql
周末吃鱼4 小时前
MySQL CTE:SQL查询新模式
数据库·sql·mysql
木风小助理5 小时前
解读 SQL 累加计算:从传统方法到窗口函数
大数据·数据库·sql
德彪稳坐倒骑驴9 小时前
Hive SQL常遗忘的命令
hive·hadoop·sql
山峰哥9 小时前
3000字深度解析:SQL调优如何让数据库查询效率提升10倍
java·服务器·数据库·sql·性能优化·编辑器
b***59439 小时前
mysql 迁移达梦数据库出现的 sql 语法问题 以及迁移方案
数据库·sql·mysql
l1t10 小时前
格式化SQL工具pg_prettify
数据库·sql
·云扬·10 小时前
MySQL四大系统库详解:作用、核心表与实用SQL查询
android·sql·mysql
奔波霸的伶俐虫10 小时前
redisTemplate.opsForList()里面方法怎么用
java·开发语言·数据库·python·sql