Mysql: рассчитать среднее время между посещениями - PullRequest
1 голос
/ 19 сентября 2010

Это связано с моим другим вопросом .

У меня есть эта таблица

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 Ответ

3 голосов
/ 19 сентября 2010
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. Для каждой страницы запрос находит дату первого и последнего посещения и общее количество посещений и вычисляет среднее арифметическое.

...