Jeśli Twoja tabela to t, a kolumna sygnatury czasowej to ts, a chcesz uzyskać odpowiedź w ciągu kilku sekund:
SELECT TIMESTAMPDIFF(SECOND, MIN(ts), MAX(ts) )
/
(COUNT(DISTINCT(ts)) -1)
FROM t
Będzie to o wiele szybsze w przypadku dużych stołów, ponieważ nie ma opcji JOIN n-kwadrat
Wykorzystuje uroczą sztuczkę matematyczną, która pomaga w rozwiązaniu tego problemu. Na razie zignoruj problem duplikatów. Średnia różnica czasu między kolejnymi wierszami to różnica między pierwszym i ostatnim znacznikiem czasu, podzielona przez liczbę wierszy -1.
Dowód:Średnia odległość między kolejnymi rzędami to suma odległości między kolejnymi rzędami podzielona przez liczbę kolejnych rzędów. Ale suma różnicy między kolejnymi wierszami to tylko odległość między pierwszym wierszem a ostatnim wierszem (zakładając, że są one posortowane według sygnatury czasowej). A liczba kolejnych rzędów to całkowita liczba rzędów -1.
Następnie po prostu warunkujemy znaczniki czasu, aby były wyraźne.