Als uw tabel t is, en uw tijdstempelkolom is ts, en u wilt het antwoord in seconden:
SELECT TIMESTAMPDIFF(SECOND, MIN(ts), MAX(ts) )
/
(COUNT(DISTINCT(ts)) -1)
FROM t
Dit zal mijlen sneller zijn voor grote tafels omdat het geen n-kwadraat JOIN heeft
Dit maakt gebruik van een leuke wiskundige truc die helpt bij dit probleem. Negeer het probleem van duplicaten voor het moment. Het gemiddelde tijdsverschil tussen opeenvolgende rijen is het verschil tussen de eerste tijdstempel en de laatste tijdstempel, gedeeld door het aantal rijen -1.
Bewijs:De gemiddelde afstand tussen opeenvolgende rijen is de som van de afstand tussen opeenvolgende rijen, gedeeld door het aantal opeenvolgende rijen. Maar de som van het verschil tussen opeenvolgende rijen is slechts de afstand tussen de eerste rij en de laatste rij (ervan uitgaande dat ze zijn gesorteerd op tijdstempel). En het aantal opeenvolgende rijen is het totale aantal rijen -1.
Dan conditioneren we de tijdstempels om duidelijk te zijn.