Essayez ceci:
SELECT AVG(DATEDIFF(s, M2.Date_Posted, M1.Date_Posted)) as AverageSeconds
FROM Messages M1 INNER JOIN Messages M2 ON M1.Id = M2.Id+1
Désolé, c'est la solution MS-SQL non mySQL - excuses ne viens juste de réaliser que est ce que vous étiez après. Cela peut être utile à quelqu'un d'autre. En réponse aux commentaires ci-dessous - dans SQL Server 2005 ou 2008 - ce qui suit serait une meilleure solution car il ne fait aucune hypothèse sur les clés primaires entières séquentielles ou réelles car il utilise Row_Number pour générer une clé séquentielle unique:
SELECT AVG(DATEDIFF(s, M2.Date_Posted, M1.Date_Posted)) as AverageSeconds
FROM (SELECT ROW_NUMBER() OVER(ORDER BY Date_Posted ASC) as Id, Date_Posted FROM
Messages) M1
INNER JOIN (SELECT ROW_NUMBER() OVER(ORDER BY Date_Posted ASC) as Id, Date_Posted
FROM Messages) M2 ON M1.Id = M2.Id+1
hey ça marche! mais il donne une valeur comme "16775640.3" quelle unité est-ce? comment puis-je convertir en jours ou en heures? – Obay
@Obay: désolé, il y avait un petit pépin, j'ai mis à jour la requête. Ce sera en quelques secondes. – Quassnoi
wow merci l'homme! – Obay