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