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

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

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

全部评论

相关推荐

程序员牛肉:你这简历有啥值得拷打的?在牛客你这种简历一抓一大把,也就是个人信息不一样而已。 关键要去找亮点,亮点啊,整个简历都跟流水线生产出来的一样。
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

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