假设我有一个 mysql 表 t:
DateTime timestamp;
int userid;
我想知道随着时间的推移我有多少用户。我有这个:
2012-12-04 102
2012-12-05 101
2012-12-05 102
2012-12-05 103
2012-12-07 101
2012-12-08 104
所以第一次看到 101 是 12/5,第一次看到 104 是 12/7,以此类推。所以我想要这个,对于按日期见过的总用户:
2012-12-04 1
2012-12-05 3
2012-12-07 3
2012-12-08 4
(我不在乎那里是否有额外的日期而没有新条目。)
我能得到的最接近的是每天的新用户数量:
select distinct date, count(*) from
(select MIN(DATE(timestamp)) date from t group by userid order by date) t1 \
GROUP BY date;
这似乎有效;子查询为每个用户 ID 提供最早的时间戳,外部查询按日期组合。但是我怎样才能把它卷起来得到曾经见过的总数呢?
哦,是的,我查看了MySQL 查询 - 每天查找“新”用户,但它似乎没有达到我想要的效果。