select t4.*
from

#2、在计算了每天视频的xxx,在此基础上以“td视频播放日期”为基准,利用窗口函数,计算前7天的累积点赞量&前7天内最大转发量#
(select t3.tag,t3.dt,
sum(sum_day_like) over(partition by t3.tag order by t3.dt rows 6 preceding) as sum_like_cnt_7d,
max(sum_day_retweet) over(partition by t3.tag order by t3.dt rows 6 preceding) as max_retweet_cnt_7d
from

#1、若想计算前7天的视频xxx,就需要先将每天的视频xxx进行汇总(每天视频存在多条观看记录,因此需要进行汇总)#
(select t1.tag,date_format(t2.start_time,'%Y-%m-%d') as dt,
sum(if_like) as sum_day_like,
sum(if_retweet) as sum_day_retweet
from tb_video_info as t1
left join tb_user_video_log as t2
on t1.video_id = t2.video_id
group by 1,2)

as t3)

#3、在按照td为基础计算出了每个视频前7天的xxx,再按照“国庆节前3天的前7天的xxx”,对“td字段=汇总计算的基准字段”进行条件的筛选#
as t4
where t4.dt between '2021-10-01' and '2021-10-03'
order by t4.tag desc,t4.dt;

整体思路:首先,由于每天存在多条视频观看记录,因此需要先统计每天的点赞量和转发量;其次,按照视频播放日期为基准,sum前7天的点赞量/求前7天内的max转发量;再次,筛选出td为“2021年国庆前3天”即可。