题解 | #国庆期间每类视频点赞量和转发量#
国庆期间每类视频点赞量和转发量
https://www.nowcoder.com/practice/f90ce4ee521f400db741486209914a11
select
*
from
(select
tag,
dt,
sum(like_cnt)over(partition by tag order by dt rows 6 preceding)
as sum_like_cnt_7d ,
max(retweet_cnt)over(partition by tag order by dt rows 6 preceding) as max_retweet_cnt_7d
from(
select
b.tag as tag,
date_format(a.start_time,'%Y-%m-%d') as dt,
sum(a.if_like) as like_cnt,
sum(a.if_retweet) as retweet_cnt
from
tb_user_video_log a left join tb_video_info b
on a.video_id = b.video_id
where
date_format(a.start_time,'%Y-%m-%d') >= '2021-09-25'
and date_format(a.start_time,'%Y-%m-%d') <= '2021-10-03'
group by
b.tag,
date_format(a.start_time,'%Y-%m-%d')
) t1
)t2
where
dt in ('2021-10-01','2021-10-02','2021-10-03')
order by
tag desc, dt
注:
sum(like_cnt)over(partition by tag order by dt rows 6 preceding)
日期升序,当前行+向前取6行
笔记:
rows between 2 perceding and 2 following #当前行往前2行+当前行+当前行往后2行(一共5行)
rows between 1 following 3 following #当前行的后1——>后3(共3行)
rows between unbounded preceding and current row #从第一行到当前行
