现有试卷作答记录表exam_record(uid用户ID, exam_id试卷ID, start_time开始作答时间, submit_time交卷时间, score得分): id uid exam_id start_time submit_time score 1 1001 9001 2020-01-01 09:01:01 2020-01-01 09:21:59 90 2 1002 9001 2020-01-20 10:01:01 2020-01-20 10:10:01 89 3 1002 9001 2020-02-01 12:11:01 2020-02-01 12:31:01 83 4 1003 9001 2020-03-01 19:01:01 2020-03-01 19:30:01 75 5 1004 9001 2020-03-01 12:01:01 2020-03-01 12:11:01 60 6 1003 9001 2020-03-01 12:01:01 2020-03-01 12:41:01 90 7 1002 9001 2020-05-02 19:01:01 2020-05-02 19:32:00 90 8 1001 9002 2020-01-02 19:01:01 2020-01-02 19:59:01 69 9 1004 9002 2020-02-02 12:01:01 2020-02-02 12:20:01 99 10 1003 9002 2020-02-02 12:01:01 2020-02-02 12:31:01 68 11 1001 9002 2020-01-02 19:01:01 2020-02-02 12:43:01 81 12 1001 9002 2020-03-02 12:11:01 (NULL) (NULL) 请输出自从有用户作答记录以来,每月的试卷作答记录中月活用户数、新增用户数、截止当月的单月最大新增用户数、截止当月的累积用户数。结果按月份升序输出。 新增用户:首次登录的用户,也就是把用户最早登录的那天定义为首次登录日期。 截止当月的单月最大新增用户数:按照月份依次对比每个月的新增用户数的大小取大值 截止当月的累积用户数:按照月份依次累加新增用户数 需求字段: start_month :月份 mau :月活用户数 month_add_uv :新增用户数 max_month_add_uv:截止当月的单月最大新增用户数 cum_sum_uv:截止当月的累积用户数 由示例数据结果输出如下: start_month mau month_add_uv max_month_add_uv cum_sum_uv 202001 2 2 2 2 202002 4 2 2 4 202003 3 0 2 4 202005 1 0 2 4 month 1001 1002 1003 1004 202001 1 1 202002 1 1 1 1 202003 1 1 1 202005 1 由上述矩阵可以看出,2020年1月有2个用户活跃(mau=2),当月新增用户数为2; 2020年2月有4个用户活跃,当月新增用户数为2,最大单月新增用户数为2,当前累积用户数为4。
示例1

输入

drop table if exists exam_record;
CREATE TABLE exam_record (
    id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
    uid int NOT NULL COMMENT '用户ID',
    exam_id int NOT NULL COMMENT '试卷ID',
    start_time datetime NOT NULL COMMENT '开始时间',
    submit_time datetime COMMENT '提交时间',
    score tinyint COMMENT '得分'
)CHARACTER SET utf8 COLLATE utf8_general_ci;

INSERT INTO exam_record(uid,exam_id,start_time,submit_time,score) VALUES
(1001, 9001, '2020-01-01 09:01:01', '2020-01-01 09:21:59', 90),
(1002, 9001, '2020-01-20 10:01:01', '2020-01-20 10:10:01', 89),
(1002, 9001, '2020-02-01 12:11:01', '2020-02-01 12:31:01', 83),
(1003, 9001, '2020-03-01 19:01:01', '2020-03-01 19:30:01', 75),
(1004, 9001, '2020-03-01 12:01:01', '2020-03-01 12:11:01', 60),
(1003, 9001, '2020-03-01 12:01:01', '2020-03-01 12:41:01', 90),
(1002, 9001, '2020-05-02 19:01:01', '2020-05-02 19:32:00', 90),
(1001, 9002, '2020-01-02 19:01:01', '2020-01-02 19:59:01', 69),
(1004, 9002, '2020-02-02 12:01:01', '2020-02-02 12:20:01', 99),
(1003, 9002, '2020-02-02 12:01:01', '2020-02-02 12:31:01', 68),
(1001, 9002, '2020-02-02 12:01:01', '2020-02-02 12:43:01', 81),
(1001, 9002, '2020-03-02 12:11:01', null, null);

输出

202001|2|2|2|2
202002|4|2|2|4
202003|3|0|2|4
202005|1|0|2|4
加载中...