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

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

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

SELECT
    author,
    month,
    ROUND(fans_growth_rate, 3) AS fans_growth_rate,
    SUM(sum_fans) OVER(PARTITION BY author ORDER BY month) AS total_fans
FROM(
    SELECT
        author,
        DATE_FORMAT(end_time, '%Y-%m') AS month,
        AVG(
            CASE
            WHEN if_follow = 1 THEN 1
            WHEN if_follow = 0 THEN 0
            ELSE -1
        END) AS fans_growth_rate,
        SUM(
            CASE
            WHEN if_follow = 1 THEN 1
            WHEN if_follow = 0 THEN 0
            ELSE -1
        END) AS sum_fans
    FROM tb_user_video_log t1
    JOIN tb_video_info t2 ON t1.video_id = t2.video_id
    WHERE YEAR(end_time) = '2021'
    GROUP BY author, month
) t
ORDER BY author, total_fans

关键在于如何累加每个月的粉丝量,这需要使用到SUM+窗口函数。但是SUM内的又应该是已经按照author和month分组汇总好的每个月的粉丝增量,这会非常绕,所以最好将这一部分分组汇总的操作放在子查询中完成,思路会清晰一些。

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 11:45
你不要过来啊啊啊啊啊啊啊
码农索隆:对面:“今天你不面也得面”
点赞 评论 收藏
分享
昨天 11:15
中南大学 Java
好可爱的hr姐姐哈哈哈哈
黑皮白袜臭脚体育生:兄弟们貂蝉在一起,吕布开了
点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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