Intuitivně by to, na co se ptáte, mělo odpovídat intervalu mezi prvním a posledním datem, děleno počtem dat mínus 1.
Dovolte mi to vysvětlit důkladněji. Představte si, že data jsou body na přímce (+
jsou přítomna data, -
chybí data, první datum je 12. a poslední datum jsem pro ilustraci změnil na 24. prosince):
++----+---+-+
Nyní, co opravdu chcete udělat, je rovnoměrně rozmístit svá data mezi tyto řádky a zjistit, jak dlouho je mezi nimi:
+--+--+--+--+
Chcete-li to provést, jednoduše vezmete počet dní mezi posledním a prvním dnem, v tomto případě 24 - 12 =12, a vydělíte ho počtem intervalů, které musíte oddělit, v tomto případě 4:12 / 4 = 3
.
S dotazem MySQL
SELECT DATEDIFF(MAX(dt), MIN(dt)) / (COUNT(dt) - 1) FROM a;
Toto funguje na této tabulce (s vašimi hodnotami vrátí 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');