Intuitivamente, lo que está preguntando debería ser equivalente al intervalo entre la primera y la última fecha, dividido por el número de fechas menos 1.
Déjame explicarte más a fondo. Imagina que las fechas son puntos en una línea (+
son fechas presentes, -
faltan fechas, la primera fecha es el 12 y cambié la última fecha al 24 de diciembre con fines ilustrativos):
++----+---+-+
Ahora, lo que realmente quieres hacer es espaciar uniformemente las fechas entre estas líneas y encontrar cuánto tiempo pasa entre cada una de ellas:
+--+--+--+--+
Para hacerlo, simplemente toma el número de días entre el último y el primero, en este caso 24 - 12 =12, y lo divide por el número de intervalos que tiene que espaciar, en este caso 4:12 / 4 = 3
.
Con una consulta MySQL
SELECT DATEDIFF(MAX(dt), MIN(dt)) / (COUNT(dt) - 1) FROM a;
Esto funciona en esta tabla (con sus valores devuelve 2,75):
CREATE TABLE IF NOT EXISTS `a` (
`dt` date NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `a` (`dt`) VALUES
('2010-12-12'),
('2010-12-13'),
('2010-12-18'),
('2010-12-22'),
('2010-12-24');