# 要求:统计2021年国庆头3天每类视频每天的近一周总点赞量和一周内最大单天转发量
# 近一周“总点赞量”
# 一周内“最大单天转发量”
# 条件1 2021年;条件2 国庆头3天近一周;条件3 视频类别降序、日期升序
SELECT
tag,
dt,
sum_like_cnt_7d,
max_retweet_cnt_7d
FROM( # 2.使用窗口函数计算每天近一周的总点赞量SUM() OVER();和最大转发量 MAX() OVER()。
SELECT
tag,
dt,
SUM(like_cnt_1d) OVER(ORDER BY tag DESC, dt ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS sum_like_cnt_7d, # SUM窗口函数,current row加前6行,包含条件3
MAX(retweet_cnt_1d) OVER(ORDER BY tag DESC, dt ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS max_retweet_cnt_7d # MAX窗口函数,current row加前6行,包含条件3
FROM(
SELECT # 1.计算出单日点赞量和转发量
tag,
DATE(start_time) AS dt,
SUM(if_like) AS like_cnt_1d,
SUM(if_retweet) AS retweet_cnt_1d
FROM tb_user_video_log tu
JOIN tb_video_info tv
ON tu.video_id = tv.video_id
GROUP BY tag, dt
) AS tb1
) AS tb2
WHERE dt BETWEEN '2021-10-01' AND '2021-10-03' # 条件2021国庆头三天