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

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

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
全部评论

相关推荐

01-12 14:08
门头沟学院 Java
有寒假来武汉小米总部实习的大学生嘛,我也是小米的员工,想找合租舍友,仅限女生可免租半月,二月初可入住,也就是说房租是2.15开始算的哦~也可以将行李提前放过来~房屋介绍:1、房子情况:有电梯;租的是三室一厅一卫一厨, 但是有个卧室比较小,不打算找人,只住两个人就可以了;衣柜也很大,可以放下很多衣服;房屋采光真的很好,早上起来可以在床上晒太阳的那种,十分惬意(夏季晚上十分好看!)2. 楼下离我们很近的地方有小吃街和一个两层大超市(大概步行两分钟多就可以走到) ,还有一个新开的麦当劳,晚上可以去吃小吃,购买物资也可以去大超市;3. 房子基本设施齐备(洗衣机,冰箱,空调,油烟机,热水器);4. 我有稳定的工作,生活中很注意卫生,周末有时间会自己做饭,可以投喂哦~5. 出行:距离公交站步行10分钟不到,距政务中心,武汉小米总部三站(晚上我都是走回来的,很近的~);一个比较进的地铁,距离大概1km左右;出入我觉得很方便;6. 房租:1150每月,押一付二,无物业费,也没有中介费和其他额外费用。7. 民用水电燃气,用多少交多少,水电费正常平摊。希望你是:1. 女生(本人女),不带异性回家,如有同性朋友来玩,最多过夜一晚;2. 爱干净,讲卫生,作息正常,不吵闹,有稳定工作;3. 好沟通,有任何问题一定要沟通,不要闷着!中介勿扰,非诚勿扰!!!希望不要浪费彼此的时间诚心有意向的可以联系我看房
租房找室友
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

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