题解 | 国庆期间每类视频点赞量和转发量
国庆期间每类视频点赞量和转发量
https://www.nowcoder.com/practice/f90ce4ee521f400db741486209914a11
#解题思路:因为要找国庆头三天的近一周的相关数据,我想先将表中每一天的近一周的点赞量和最大转发量求出再缩小范围 所以我决定采用表的自连接的方法,可以将每一天所对应的近一周的日期对应的数据查找出来。 (做完发现评论区中有很多是采用窗口函数的,这也是一种很好的方法,但是如果题目提供的数据日期不是连续的,就会导致问题的出现,而我这样做就可以避免,如果有问题,请指出,谢谢) # t表是聚合后每类视频的每一天的点赞量和转发量 with t as(select v.tag,date(u.start_time) date,sum(u.if_like) su_like,sum(u.if_retweet) su_re from tb_user_video_log u join tb_video_info v using (video_id) group by v.tag,date ) #提供t表的自连接,找到每个日期的近一周的数据然后计算点赞量和最大转发量,这里需要注意连接条件 select t1.tag,t1.date,sum(t2.su_like),max(t2.su_re) from t t1 left join t t2 on t1.date>=t2.date and datediff(t1.date,t2.date)<=6 and t1.tag=t2.tag where t1.date between '2021-10-01' and '2021-10-03' group by t1.tag,t1.date order by t1.tag desc,t1.date