Se sua tabela for t, e sua coluna de carimbo de data/hora for ts, e você quiser a resposta em segundos:
SELECT TIMESTAMPDIFF(SECOND, MIN(ts), MAX(ts) )
/
(COUNT(DISTINCT(ts)) -1)
FROM t
Isso será muito mais rápido para mesas grandes, pois não possui JOIN n-quadrado
Isso usa um truque matemático fofo que ajuda com esse problema. Ignore o problema de duplicatas por enquanto. A diferença de tempo média entre linhas consecutivas é a diferença entre o primeiro timestamp e o último timestamp, dividido pelo número de linhas -1.
Prova:A distância média entre linhas consecutivas é a soma da distância entre linhas consecutivas, dividida pelo número de linhas consecutivas. Mas a soma da diferença entre linhas consecutivas é apenas a distância entre a primeira e a última linha (supondo que elas sejam classificadas por timestamp). E o número de linhas consecutivas é o número total de linhas -1.
Em seguida, apenas condicionamos os timestamps a serem distintos.