题解 | #国庆期间每类视频点赞量和转发量#
国庆期间每类视频点赞量和转发量
http://www.nowcoder.com/practice/f90ce4ee521f400db741486209914a11
易错点/关键点——执行顺序
若只有两层,外层就用where筛选出国庆三天数据:
-
- 得到题目解释部分表格q1
-
- 取q1中国庆三天的信息,逐一得到所需变量,故sum()和max()虽然要求范围框在本行及前六行,但由于只取了三行数据,故只能在三行基础之上取sum()和max()
若取三层,最外层用where筛选出国庆三天数据:
-
- 得到题目解释部分表格q1
-
- 得到包含q1每一天的近一周的sum()和max()表格q2
-
- 取q2中国庆三天的数据
select * from
(select tag,dt,
sum(like_cnt) over (partition by tag order by dt rows 6 preceding) as sum_like_cnt_7d,
max(retweet_cnt) over (partition by tag order by dt rows 6 preceding) as max_retweet_cnt_7d
from
(select tag,date(start_time) as dt,
sum(if_like) as like_cnt,sum(if_retweet) as retweet_cnt
from tb_user_video_log as vl
join tb_video_info as vi
on vl.video_id=vi.video_id
where start_time between '2021-09-25 00:00:00'
and '2021-10-03 23:59:59'
group by tag,dt
order by tag,dt
) as q1
) as q2
where dt='2021-10-01' or dt='2021-10-02' or dt='2021-10-03'
order by tag desc,dt asc