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

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

https://www.nowcoder.com/practice/f90ce4ee521f400db741486209914a11

1、首先查看over窗口函数的用法

select
tag,
date(start_time) as dt,
sum(if_like) over(partition by tag order by date(start_time)) as sum_like_cnt_7d,
max(if_retweet) over(partition by tag order by date(start_time)) as max_retweet_cnt_7d
from tb_user_video_log left join tb_video_info using(video_id)

返回结果:

tag dt sum_like_cnt_7d max_retweet_cnt_7d
旅游 2021-09-24 1 0
旅游 2021-09-25 2 1
旅游 2021-09-25 2 1
旅游 2021-09-26 2 1
旅游 2021-09-27 3 1
旅游 2021-09-28 3 1
旅游 2021-09-29 3 1
旅游 2021-09-30 4 1
旅游 2021-10-01 6 1
旅游 2021-10-01 6 1
旅游 2021-10-01 6 1
旅游 2021-10-02 7 1
旅游 2021-10-02 7 1
旅游 2021-10-02 7 1
旅游 2021-10-03 8 1

在上述表格中,第一行是表头,分别对应原数据中的各列含义,后续每行对应原数据中的每一条记录。 2、此题解答

with r1 as(
select
tag,
dt,
sum(like_count) over(partition by tag order by dt ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) as sum_like_cnt_7d,
max(retweet_count) over(partition by tag order by dt ROWS BETWEEN 6 PRECEDING AND CURRENT ROW)
as max_retweet_cnt_7d
from(
select 
tag,
date(start_time) as dt,
sum(if_like) as like_count,
sum(if_retweet) as retweet_count
from tb_user_video_log left join tb_video_info using(video_id)
group by tag,dt
) t1
where dt>='2021-09-25' and dt<='2021-10-03'
)
select tag,dt,sum_like_cnt_7d,max_retweet_cnt_7d
from r1
where dt>='2021-10-01' and dt<='2021-10-03'
order by tag desc, dt asc

学习参考链接: 1、SQL160 国庆期间每类视频点赞量和转发量https://zhuanlan.zhihu.com/p/328504991

2、SQL160 国庆期间每类视频点赞量和转发量

#窗口函数的用法学习#
全部评论

相关推荐

牛客74464229...:年底就这样,招人的要不是很缺人的,要不就是岗位要求高的
点赞 评论 收藏
分享
11-04 19:05
已编辑
东莞城市学院 单片机
不知道怎么取名字_:你这个要实习两年?哪有这么久的,感觉就是即使你毕业了,但还按实习的话,是不是不用给你缴社保公积金啥的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务