Se la tua tabella è t e la colonna del timestamp è ts e desideri la risposta in pochi secondi:
SELECT TIMESTAMPDIFF(SECOND, MIN(ts), MAX(ts) )
/
(COUNT(DISTINCT(ts)) -1)
FROM t
Questo sarà molto più veloce per i tavoli di grandi dimensioni in quanto non ha N-squared JOIN
Questo usa un simpatico trucco matematico che aiuta con questo problema. Ignora per il momento il problema dei duplicati. La differenza di tempo media tra righe consecutive è la differenza tra il primo timestamp e l'ultimo timestamp, divisa per il numero di righe -1.
Dimostrazione:La distanza media tra file consecutive è la somma della distanza tra file consecutive, divisa per il numero di file consecutive. Ma la somma della differenza tra righe consecutive è solo la distanza tra la prima riga e l'ultima riga (supponendo che siano ordinate per timestamp). E il numero di righe consecutive è il numero totale di righe -1.
Quindi condizioniremo semplicemente i timestamp in modo che siano distinti.