每5分钟一次查询点击次数

时间:2012-06-05 16:56:27

标签: mysql group-by

我正在制作一份报告,以确定点击我网站上特定按钮的访问者数量。在分析了我的日志后,我发现访问者会在一两分钟内多次点击同一个按钮(有时多达10次),这完全会导致结果出现偏差。

我正在尝试创建一个查询,该查询将在5分钟的时间范围内仅对每个访问者(通过ip)进行一次计数。我已经提出了以下内容,它给了我总计数,但我似乎无法找到合适的组合,将其分解成大块的时间。 (datetime的类型为 date

SELECT count(ip), ip, link, datetime  FROM `clicks` group by ip, link

有没有一种简单的方法可以实现这一目标,还是我不正确地考虑这个问题?我想如果有必要,我可以在白天对它进行分组,但如果可能的话,我真的想更细致地分解它。

非常感谢任何正确方向的指针!

1 个答案:

答案 0 :(得分:2)

如果您想要今天每5分钟间隔计算一次IP,请尝试以下方法:

SELECT COUNT(ip) ipcount,dt FROM
(
    SELECT
    ip,(datetime - INTERVAL MOD(UNIX_TIMESTAMP(datetime),300)) SECOND dt
    FROM `clicks`
    WHERE datetime >= (DATE(NOW()) + INTERVAL 0 SECOND)
) A
GROUP BY dt;

表达式DATE(NOW()) + INTERVAL 0 SECOND今天是午夜

mysql> select DATE(NOW()) + INTERVAL 0 SECOND;
+---------------------------------+
| DATE(NOW()) + INTERVAL 0 SECOND |
+---------------------------------+
| 2012-06-05 00:00:00             |
+---------------------------------+
1 row in set (0.00 sec)

mysql>