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

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

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

# 自从有用户作答记录以来,每月的试卷作答记录中月活用户数、新增用户数、截止当月的单月最大新增用户数、截止当月的累积用户数
# 月活用户数
with A as (
select date_format(start_time,'%Y%m')start_month
,count(distinct uid)mau
from exam_record
group by 1
)
# 新增用户数 找他的最小月份 再以月份分组 count一下
,B as (
select start_month,count(uid)month_add_uv from
(select uid,min(date_format(start_time,'%Y%m'))start_month
from exam_record
group by 1)b
group by 1
)
# 截止当月的单月最大新增用户数 开个窗完事 连表的时候再写 要不然会少数据
# 截止当月的累积用户数 新增+新增 同上 开个窗完事
,C as 
(select start_month,max(c)over(order by start_month)cum_sum_uv
from 
(select date_format(start_time,'%Y%m')start_month,count(distinct uid)c
from exam_record
group by 1 
order by 1)c)
# 连表去空
select start_month,mau
,ifnull(month_add_uv,0)month_add_uv
,max_month_add_uv,cum_sum_uv
from
(select start_month,mau,month_add_uv
,max(month_add_uv)over(order by start_month)max_month_add_uv
,sum(month_add_uv)over(order by start_month)cum_sum_uv
from A
left join B using(start_month)
left join C using(start_month))z
order by 1

全部评论

相关推荐

15*12,996,裁应届,想招cppjavapython算法的全才是吧,还多选题少选无分,咪咕你真无敌了
Devs008:是呀,选择题太抽象了,还搞个什么比赛,笑死了
投递咪咕等公司10个岗位 >
点赞 评论 收藏
分享
10-14 13:25
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
扭转乾坤_:现在企业都是学华为,一直通过丢池子里,最后捞
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务