Dans SQL Server, vous pouvez écrire quelque chose comme ça pour obtenir cette information:
SELECT
t1.ID, t2.ID,
DATEDIFF(MILLISECOND, t2.PriceTime, test2.PriceTime)
FROM table t1
INNER JOIN table t2 ON t2.ID = t1.ID-1
WHERE t1.ID > (SELECT MIN(ID) FROM table)
et si vous re seulement intéressé par l'AVG à travers toutes les entrées, vous pouvez utiliser:
SELECT
AVG(DATEDIFF(MILLISECOND, t2.PriceTime, test2.PriceTime))
FROM table t1
INNER JOIN table t2 ON t2.ID = t1.ID-1
WHERE t1.ID > (SELECT MIN(ID) FROM table)
Fondamentalement, vous devez joindre la table avec lui-même, et utiliser "t1.ID = t2.ID-1" pour associer le numéro d'article. 2 dans un tableau avec l'article no. 1 dans l'autre tableau, puis calculez la différence de temps entre les deux. Afin d'éviter d'accéder à l'article no. 0 qui n'existe pas, utilisez la clause "T1.ID> (SELECT MIN (ID) FROM table)" pour démarrer à partir du deuxième élément.
Marc
base de données Oracle 10g. – Siv
@Marc, votre deuxième requête donne le bon résultat. merci beaucoup. – Siv
OK, supprimé ma réponse afin que vous puissiez upvote :-) Merci! Mais soyez conscient du commentaire d'Adam qui est tout à fait vrai - ma requête ne fonctionne que si les ID sont séquentiels et ne comportent aucun espace. –