在MySQL中按时间计算用户数

时间:2014-04-24 05:53:05

标签: mysql database

我想在MySQL的时间段内统计我的用户。我写了这个查询(我知道这是不正确的),但这个查询只能让我按时间计算注册用户数。

SELECT DATE_FORMAT(reg_date,  '%Y-%V') AS  'Week', count(*) AS 'Users'
    FROM `users`
    GROUP BY Week

2 个答案:

答案 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
        .
        .
        .