sql >> Base de Datos >  >> RDS >> Mysql

MySQL:Intervalo promedio entre registros

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');