题解 | 国庆期间每类视频点赞量和转发量
国庆期间每类视频点赞量和转发量
https://www.nowcoder.com/practice/f90ce4ee521f400db741486209914a11
#分组:每类视频每天
#时间单位统一:由于原数据每天都有多条记录,因此先用DATE或date_format统一成天,并先统计出每类视频每天的记录:点赞量和转发量
#每类一周内总点赞量:滑动7天内,当前行到前6行-滑动窗口函数
#每类一周最大单天转发量:当前日及前6天内,当前行到前6行-滑动窗口函数
#国庆头三天:最后在最外层对原数据筛选, 筛选出头3天的滑动窗口。不能在窗口函数那层筛选,否则窗口行数只包含前三天的数据
SELECT
tag,dt,sum_like_cnt_7d,max_retweet_cnt_7d
FROM(
SELECT
tag,dt,
sum(like_cnt)over(partition by tag order by dt ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) sum_like_cnt_7d,
max(retweet_cnt)over(partition by tag order by dt ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) max_retweet_cnt_7d
FROM(
SELECT
tag,
DATE(start_time) dt,
sum(if_like=1) like_cnt,
sum(if_retweet=1) retweet_cnt
FROM tb_video_info a
LEFT JOIN tb_user_video_log b
ON a.video_id=b.video_id
where year(start_time)=2021
group by tag, DATE(start_time)
) t1
group by tag, dt
) t2
where dt between '2021-10-01' and '2021-10-3' #包含区间边界
group by tag, dt
order by tag desc, dt asc
OPPO公司福利 1232人发布