Mysql:计算访问之间的平均时间

时间:2010-09-19 09:08:15

标签: mysql datetime datediff

这与我的other question有关。

我有这张桌子

CREATE OR REPLACE TABLE hits (ip bigint, page VARCHAR(256), agent VARCHAR(1000), 
                              date datetime)

我想计算每个页面的googlebot访问之间的平均时间。

... WHERE agent like '%Googlebot%' group by page order by date

这样的东西
select datediff('2010-09-18 04:20:47', '2010-09-16 05:23:04')

但是对于表格中的每个日期 如果没有mysql方式,我该如何在php中执行此操作?

1 个答案:

答案 0 :(得分:3)

SELECT page, TIMESTAMPDIFF(SECOND, MIN(date), MAX(date)) / (COUNT(*)-1) FROM hits 
WHERE agent like '%Googlebot%' GROUP BY page;

TIMESTAMPDIFF(SECOND, a, b)返回日期表达式a和b之间的秒数差异。对于每个页面,查询会查找第一次和最后一次访问的日期以及总访问次数,并计算算术平均值。