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

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

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

问题切分

筛选条件:2021年国庆头3天

要求的是:每类视频每天的近一周总点赞量和一周内最大单天转发量

隐藏条件:结果按视频类别降序、日期升序排序

重点问题

怎么计算每类视频每天的近一周总点赞量和一周内最大单天转发量?

看到近一周想到滑动窗口函数

先聚合每天的视频点赞总数和转发总数,再开窗进行计算,最后筛选出国庆的前三天

整合代码

select *

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) like_cnt,

            sum(if_retweet) retweet_cnt

        from

            tb_user_video_log tu left join tb_video_info tv

            on tu.video_id = tv.video_id

        group by 1,2) a) b

where

    dt between '2021-10-01' and '2021-10-03'

order by 1 desc,2

注意事项

窗口函数内千万不要where筛选,不然会先筛选再开窗,答案就错了

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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