题解 | #每个创作者每月的涨粉率及截止当前的总粉丝量#

每个创作者每月的涨粉率及截止当前的总粉丝量

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

难点主要在于计算截止当前的总粉丝量。这一步要使用窗口函数来完成

sum(<column>) over(partition by <partition column> order by <order column>)
  • <column>:要计算总和的列名
  • partition by <partition column>:按照指定的列名进行分区,将数据划分为多个子集,每个子集内的行均有相同的分区键值。在窗口函数中,分区是用来限制透过窗口函数处理的范围的。
  • order by <order column>:按照指定的列名进行排序,控制窗口函数计算总和时的顺序。
SELECT
    author,
    DATE_FORMAT (start_time, '%Y-%m') AS month,
    ROUND(
        SUM(
            CASE
                WHEN if_follow = 1 THEN 1
                WHEN if_follow = 2 THEN -1
                ELSE 0
            END
        ) / COUNT(*),
        3
    ) AS fans_growth_rate,
    SUM(
        SUM(
            CASE
                WHEN if_follow = 1 THEN 1
                WHEN if_follow = 2 THEN -1
                ELSE 0
            END
        )
    ) OVER (
        PARTITION BY
            author
        ORDER BY
            DATE_FORMAT (start_time, '%Y-%m')
    ) AS total_fans
FROM
    tb_user_video_log
    JOIN tb_video_info ON tb_user_video_log.video_id = tb_video_info.video_id
WHERE YEAR(start_time)=2021
GROUP BY
    author,
    month
ORDER BY
    author,total_fans ASC,fans_growth_rate DESC

全部评论

相关推荐

07-22 13:50
门头沟学院 Java
仁者伍敌:其实能找到就很好了,当然收支能抵
点赞 评论 收藏
分享
机械打工仔:不管啥专业,找工作改简历的第一课先把你那排版改了,简历上不要写个人简历四个字,找你要简历的谁不知道这个是简历?而且还占那么多空间,直接把自己名字和基础信息写上面,整体字体大一些。 还有这种经典两页简历一页大空白,导出PDF的时候多了一页几乎全是白的你自己看着不难受吗随手的事为啥不能改掉呢,这是态度问题,你试想一下你是HR你打开简历看到格式都没调整过会是什么感受?你自己都不重视你的简历,HR更不会在意。 然后内容你那个做两年咖啡就别往里写了,简历在精不在多,你在往你的简历里打字的时候就要想好这东西对你要找的工作有没有帮助。自我评价写一行就行了,不如给专业技能单开一栏。核心课程均分90这个真别写了,把你上过的有用的专业课列出来也行。有很多地方废话很多的精炼一下,比如你校内项目第一个写的那些,全然没有重点。 好好修改一下,我看你内容也挺优秀的,别被一个随便做的简历耽误了,我一个同专业的打工人看了都揪心更别说一天看几百份简历的HR
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
07-07 17:06
已编辑
深圳技术大学 golang
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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