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

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

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

问题:请输出自从有用户作答记录以来,每月的试卷作答记录中月活用户数、新增用户数、截止当月的单月最大新增用户数、截止当月的累积用户数。结果按月份升序输出。

1,这道题的关键问题在于第二个字段如何求累积新增用户数。这里刷过之前“全部题目”中应该遇到这种类型的问题。需要使用逆向思维根据uid分组求最小的月份,则这个月份的uid就是本月的新增用户,然后和原始表格链接时月份相等,再对uid求和就是每个月的新增人数。

2.第二个关键问题是后面几个字段到本月为止累积求最大值和求和。用over()的方法实现,之前也出现过。

SELECT r2.start_month, c1, COUNT(r1.uid) month_add_uv,
MAX(count(r1.uid)) OVER(order by r2.start_month) max_month_add_uv,
SUM(count(r1.uid)) OVER(order by r2.start_month) cum_sum_uv
from
	(SELECT uid, MIN(date_format(start_time,'%Y%m')) start_month 
    FROM exam_record
 	GROUP BY uid
 	) r1 
RIGHT JOIN
	(SELECT DATE_FORMAT(start_time,'%Y%m') start_month, 
    COUNT(DISTINCT uid) c1 
	FROM exam_record
	GROUP BY date_format(start_time,'%Y%m')
 	) r2 
 ON r1.start_month=r2.start_month 
GROUP BY r2.start_month, c1
全部评论

相关推荐

评论
2
1
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
9225次浏览 83人参与
# 你的实习产出是真实的还是包装的? #
1698次浏览 40人参与
# 米连集团26产品管培生项目 #
5651次浏览 214人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7416次浏览 42人参与
# 简历第一个项目做什么 #
31519次浏览 327人参与
# 重来一次,我还会选择这个专业吗 #
433317次浏览 3926人参与
# MiniMax求职进展汇总 #
23766次浏览 308人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186924次浏览 1120人参与
# 牛客AI文生图 #
21402次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152278次浏览 887人参与
# 研究所笔面经互助 #
118859次浏览 577人参与
# 简历中的项目经历要怎么写? #
309978次浏览 4189人参与
# AI时代,哪些岗位最容易被淘汰 #
63343次浏览 799人参与
# 面试紧张时你会有什么表现? #
30482次浏览 188人参与
# 你今年的平均薪资是多少? #
212996次浏览 1039人参与
# 你怎么看待AI面试 #
179816次浏览 1231人参与
# 高学历就一定能找到好工作吗? #
64302次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76425次浏览 374人参与
# 我的求职精神状态 #
447969次浏览 3128人参与
# 正在春招的你,也参与了去年秋招吗? #
363209次浏览 2637人参与
# 腾讯音乐求职进展汇总 #
160568次浏览 1110人参与
# 校招笔试 #
470199次浏览 2962人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务