题解 | 国庆期间每类视频点赞量和转发量

SELECT * 
FROM(
SELECT tv.tag, DATE(start_time) AS dt, 
SUM(SUM(if_like)) OVER(PARTITION BY tag ORDER BY DATE(start_time) ROWS 6 PRECEDING) AS sum_like_cnt_7d, # 每7行为一个窗口框架进行数据累加,否则,默认为一行一行向下累加
MAX(SUM(if_retweet)) OVER(PARTITION BY tag ORDER BY DATE(start_time) ROWS 6 PRECEDING) AS 
max_retweet_cnt_7d # 每7行为一个窗口框架进行数据最大值查找,否则,默认为一行一行查找最大值
FROM tb_user_video_log AS tu
LEFT OUTER JOIN tb_video_info AS tv
ON tu.video_id = tv.video_id
WHERE DATE(start_time) <= '2021-10-3' AND DATE(start_time) >= '2021-09-25'
GROUP BY tv.tag, dt) AS t

WHERE dt BETWEEN '2021-10-01' AND '2021-10-03'
ORDER BY tag DESC, dt;

学到了聚合窗口函数不仅单行运算,还可以指定滑动行运算

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务