题解 | #每月及截止当月的答题情况#

每月及截止当月的答题情况

https://www.nowcoder.com/practice/1ce93d5cec5c4243930fc5e8efaaca1e

思考

很有意思的一道题目,本身不难,无非是窗口函数的使用,但有一点很巧妙,即每月的新增用户,一开始一直在思索这个应该怎么用SQL语言表示,看到高赞的大佬才知道:将首次出现(即start_time = min(start_time))的用户mark为1,非首次出现的标记为0,之后在汇总时sum求和即为每月新增用户,学习到了

SELECT month, COUNT(DISTINCT uid), SUM(judge) month_add_uv
    , MAX(SUM(judge)) OVER(order by month)
    , SUM(SUM(judge)) OVER(order by month)
FROM (SELECT uid, date_format(start_time, '%Y%m') month
        , IF(start_time = MIN(start_time) OVER(partition by uid), 1, 0) judge
    FROM exam_record) t1
GROUP BY month

全部评论

相关推荐

不愿透露姓名的神秘牛友
09-19 14:43
实习之后才知道团队氛围的重要性来了一周,从第三天就开始想离职……团子背景、薪资福利再怎么好,也不香了
码农索隆:确实,团队的氛围真的很影响心情,好的团队上班感觉轻松愉快,不好的团队,每天没事就整点幺蛾子
投递美团等公司10个岗位
点赞 评论 收藏
分享
09-04 21:52
南京大学 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
09-18 14:26
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

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