题解 | #国庆期间每类视频点赞量和转发量#
国庆期间每类视频点赞量和转发量
http://www.nowcoder.com/practice/f90ce4ee521f400db741486209914a11
with a as (select v.tag,substring(u.start_time,1,10) as time,sum(u.if_like) as like_1,sum(u.if_retweet)as retweet from tb_user_video_log as u left join tb_video_info as v on u.video_id=v.video_id group by v.tag,time)
select a1.tag,a1.time,sum(a2.like_1),max(a2.retweet) from a as a1 left join a as a2 on a1.tag=a2.tag and datediff(a1.time,a2.time)<=6 and datediff(a1.time,a2.time)>=0 where a1.time between '2021-10-01' and '2021-10-03' group by a1.tag,a1.time
【需求分析】 要求统计2021年国庆头三天每类视频在近7天的喜欢总数和最大转发数。通俗解释就是分别以10.1,10.2,10.3为基准,取出该三个基准日期回推6天(因为7天包括了基准日)这段时间范围内, 各个标签7天的喜欢数总和,7天内的以天维度的最大转发量。 【sql解决分析】 首先,先得到每个标签在国庆头三天的近七天维度每一天的喜欢数和转发数,取名为a表,这张表通过自连接,连接条件为日期在7天内,再通过聚合筛选得到最后答案 【注意点】 关于高亮的窗口函数其实有问题:数据恰好提供了每天的播放量,假如某个tag在7天范围内某一天没有播放量最后结果就是错误的


查看15道真题和解析