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

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

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

# 计算每月的月活用户数,其他都以此推算而来
# 难点在于新增用户,需要模仿矩阵
WITH temp_0 AS(
SELECT uid, exam_id, DATE_FORMAT(start_time, "%Y%m") start_month, 
	# 定义新增用户,将单个用户首次登录的时间定义为最初时间,只有等于该时间的才算是首次登录1,其他都是老用户登录
    IF(start_time = MIN(start_time) OVER(PARTITION BY uid), 1, 0) first_time
FROM exam_record
)
# 查询,直接统计月活用户数,对每月的首次登录的用户数求和得到新增用户数,然后根据新增用户数类推出后两个字段
SELECT start_month, COUNT(DISTINCT uid) mau,
        SUM(first_time) month_add_uv,
        MAX(SUM(first_time)) OVER(ORDER BY start_month) max_month_add_uv,
        SUM(SUM(first_time)) OVER(ORDER BY start_month) cum_sum_uv
FROM temp_0
GROUP BY start_month

全部评论

相关推荐

点赞 评论 收藏
分享
06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
Beeee0927:是缅甸园区吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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