Ако вашата таблица е t, а колоната с времеви отпечатък е ts и искате отговора за секунди:
SELECT TIMESTAMPDIFF(SECOND, MIN(ts), MAX(ts) )
/
(COUNT(DISTINCT(ts)) -1)
FROM t
Това ще бъде на мили по-бързо за големи маси, тъй като няма n-квадрат JOIN
Това използва сладък математически трик, който помага при този проблем. Игнорирайте проблема с дубликатите за момента. Средната времева разлика между последователни редове е разликата между първото и последното времево клеймо, разделено на броя на редовете -1.
Доказателство:Средното разстояние между последователните редове е сумата от разстоянието между последователните редове, разделено на броя на последователните редове. Но сумата от разликата между последователни редове е само разстоянието между първия и последния ред (ако приемем, че са сортирани по времева марка). А броят на последователните редове е общият брой редове -1.
След това просто обуславяме клеймите за време да бъдат различни.