2010-09-19 20 views
1

Ceci lié à mon other question.Mysql: Calculer le temps moyen entre les visites

Je possède ce tableau

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

et je veux calculer le temps moyen entre la visite de Googlebot pour chaque page.

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

Quelque chose comme

select datediff('2010-09-18 04:20:47', '2010-09-16 05:23:04') 

mais pour chaque date dans le tableau
S'il n'y a aucun moyen de MySQL, comment puis-je faire cela en php?

Répondre

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

TIMESTAMPDIFF(SECOND, a, b) retourne la différence en quelques secondes entre la date des expressions a et b. Pour chaque page, la requête trouve la date de la première et dernière visite et le nombre total de visites, et calcule la moyenne arithmétique.