使用时间戳计算平均命中率

时间:2013-06-25 02:16:16

标签: php mysql timestamp

在我的网站上,我使用时间戳来跟踪用户在我网站上的平均时长。使用“输入时间”和“退出时间”记录(使用AJAX更新)记录每个唯一IP。有了这个,我已经能够计算用户在我的网站上花费的平均时间长度。

但是,我希望能够计算每天,每周和每月的平均点击次数。我确定可以使用时间戳来实现这一目标,但我不知道如何解决PHP和MySQL中的问题。我在其他网站上看到MySQL有一些功能可以计算平均值,但我不知道如何提取每天/每周/每月的时间戳,所以甚至无法将任何数据传递给所述函数(一个或多个)。

我可以为每一天/每周/每月创建一个包含“开始”和“结束”时间戳的表,并使用循环/关联数组在两者之间提取值,但该方法似乎超出顶部且冗长且需要很长一段时间。有没有更简单的方法来实现这一目标?

我的表结构目前是:

+----------------+----------------+----------------+----------------+
| start          | end            | unique_id      | id             |
+----------------+----------------+----------------+----------------+
| 1358789867     | 1358789872     | (hash here)    | 65             |
+----------------+----------------+----------------+----------------+
| 1358789966     | 1358789972     | (hash here)    | 66             |
+----------------+----------------+----------------+----------------+
| 1358789998     | 1358790003     | (hash here)    | 67             |
+----------------+----------------+----------------+----------------+

1 个答案:

答案 0 :(得分:1)

对于每天的平均点击次数,您只需使用开始时间戳即可。但是,确切的语法取决于您使用的是timestamp还是unix_timestamp。第一个:

select date(timestamp_start), count(*)
from t
group by date(timestamp_start)

unix_timestamp

select date(from_timestamp(timestamp_start)), count(*)
from t
group by date(from_timestamp(timestamp_start))

按天进行分组,表示为date。一旦你以这种格式获得它,其他函数,如year(),month()and date_format()`就可以用于其他时间段。