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

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

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

select start_month,
        count(distinct uid) mau,sum(new) month_add_uv,
        max(sum(new)) over(order by start_month ),
        SUM(sum(new))OVER(ORDER BY start_month) cum_sum_uv
from(
    select *,date_format(start_time,'%Y%m') start_month,
    if(start_time=(min(start_time) over(partition by uid)),1,0) new
    from exam_record
    ) t1
group by start_month

思路:

1.每月用户活跃数:按月分组,distinct(uid)

2.每月新增用户数:新增一列标记每个用户是否为第一次登录,是为1,不是为0。

if(start_time=(min(start_time) over(partition by uid)),1,0)

按月分组进行加和

3.截至当月单月最大新增用户数:截至当月新增用户数最大值 max(sum(new)) over(order by start_month )

4.截至当月累计用户数:每个月的新增人数相加

全部评论

相关推荐

11-13 20:16
已编辑
厦门理工学院 软件测试
专业嗎喽:硕佬,把学校背景放后面几段,学校背景双非还学院,让人看了就不想往下看。 把实习经历和个人奖项放前面,用数字化简述自己实习的成果和掌握的技能,比如负责项目一次通过率90%,曾4次发现项目潜在问题风险为公司减少损失等等
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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