【发布时间】:2016-02-04 23:12:43
【问题描述】:
我需要查询 Mysql 来查找某个日期范围内每个月的活跃用户数。活跃用户是本月和前一个月(两个月不只是其中一个月)有登录日志记录的用户。
这是一个用于表格和测试数据的脚本。
CREATE TABLE `logger` (
`id` INTEGER NULL AUTO_INCREMENT DEFAULT NULL,
`UserId` INTEGER NULL DEFAULT NULL,
`loginDate` DATE NULL DEFAULT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO `logger` (`UserId`,`loginDate`) VALUES
('1001','20151109'),
('1002','20151103'),
('1003','20151111'),
('1002','20151205'),
('1003','20151208'),
('1001','20160103'),
('1002','20160105');
我需要这样的结果,范围从 20151201 到 20160201
------------------------------
year |month |users |activeUsers
2015 |12 |2 |2
2016 |01 |2 |1 // only uid 1002 have activity in past month 20151205
【问题讨论】:
-
('1001','20160103')vs "只有 uid 1002 在过去一个月有活动" 是哪一个? -
编辑您的问题并包含您迄今为止尝试过的内容也是一个好主意。
-
@miken32 这个 -> ('1002','20151205')