Intuitivamente, lo que está pidiendo debe ser equivalente al intervalo entre la primera y la última fecha, dividido por el número de fechas menos 1.
Voy a explicar más a fondo. Imagine las fechas son puntos en una línea (+
son las fechas actuales, -
son fechas que faltan, la primera fecha es el 12, y me cambió la última fecha a diciembre 24o con fines ilustrativos):
++----+---+-+
Ahora, lo que realmente quiere hacer, es espaciar uniformemente las fechas entre estas líneas, y encontrar el tiempo que está entre cada uno de ellos:
+--+--+--+--+
para hacer eso, usted simplemente toma el número de días entre la última y la primera días, en este caso 24 - 12 = 12, y divídalo por el número de intervalos que tiene que espaciar, en este caso 4: 12/4 = 3
.
Con una consulta de MySQL
SELECT DATEDIFF(MAX(dt), MIN(dt))/(COUNT(dt) - 1) FROM a;
Esto funciona en esta tabla (con sus valores que 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');
Esto será mucho más fácil sin hacerlo en SQL. ¿Por qué necesita que se haga en SQL? – jwueller
Porque suena como algo divertido de hacer. Ya lo he implementado con mi función PHP. Pero tengo curiosidad por ver si se puede hacer con MySQL sin un golpe de rendimiento significativo. – HyderA
Antes que nada debe calcular la diferencia entre 2 filas: http://stackoverflow.com/questions/3017468 –