select * from (select tag,date_format(start_time,'%Y-%m-%d') as dt, sum(sum(if_like)) over (partition by tag order by date_format(start_time,'%Y-%m-%d') rows 6 preceding) as sum_like_cnt_7d, max(sum(if_retweet)) over (partition by tag order by date_format(start_time,'%Y-%m-%d') rows 6 preceding) as max_retweet_cnt_7d from tb_user_video_log t1 right join tb_video_info t2 on t1.video_id = t2.video_id group by tag,date_format(start_time,'%Y-%m-%d'))a where dt between '2021-10-01' and '2021-10-03' order by tag desc,dt
二刷没做出来的点:
1)sum(sum(if_like)) 先算一天的,再算该天及往前6天累积的
2)where dt between '2021-10-01' and '2021-10-03'应该放在外层