# 思路:先把所需字段tag连接到tb_user_video_log表中,然后使用自连接将属于国庆头三天某天近一周的数据作相对应连接 with t as( select tl.*, tag from tb_user_video_log tl join ( select video_id, tag from tb_video_info ) k1 on tl.video_id=k1.video_id ) select tag, tag_dt dt, sum(like_cnt) sum_like_cnt_7d, max(retweet_cnt) max_retweet_cnt_7d from ( select t1.tag, tag_dt, date(t2.start_time) dt, sum(t2.if_like) like_cnt, sum(t2.if_retweet) retweet_cnt from ( select distinct tag, date(start_time) tag_dt from t where date(start_time) in ('2021-10-01','2021-10-02','2021-10-03') ) t1 join t t2 on datediff(tag_dt,date(t2.start_time))<7 and datediff(tag_dt,date(t2.start_time))>=0 and t1.tag = t2.tag group by t1.tag, tag_dt, date(t2.start_time) ) k group by tag, tag_dt order by tag desc, dt;