我想在MySQL的时间段内统计我的用户。我写了这个查询(我知道这是不正确的),但这个查询只能让我按时间计算注册用户数。
SELECT DATE_FORMAT(reg_date, '%Y-%V') AS 'Week', count(*) AS 'Users'
FROM `users`
GROUP BY Week
答案 0 :(得分:0)
你的问题 - 截至目前 - 并不是非常具体,......
由于您使用的是一个名为reg_date的字段,您将其分组,因此建议您根据注册日期获取计数,因此您可能需要为'Week'
获取一个差异列。
另一种可能性是您需要使用完全不同的表,其中“用户操作”(或您正在寻找的任何内容) - 而不是用户数据 - 可能会被存储。
答案 1 :(得分:0)
我通过此查询解决了问题:
SELECT @week:=DATE_FORMAT(reg_date, '%X-%V') AS 'week'
,(SELECT SUM(users)
FROM (SELECT DATE_FORMAT(reg_date, '%X-%V') AS 'week', count(*) AS 'users', reg_date
FROM `users`
GROUP BY week) AS u
WHERE week <= @week) AS 'users'
FROM `users`
GROUP BY week
week users
==================
2013-34 23630
2013-35 24392
2013-36 25801
2013-37 28141
2013-38 29022
.
.
.