sql >> Databáze >  >> RDS >> Mysql

MySQL:Průměrný interval mezi záznamy

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


  1. MySQL odstraňuje duplicitní záznamy

  2. MySQL Fire Trigger pro vkládání i aktualizaci

  3. Vystoupení SUBSTR na CLOB

  4. Výhody vs. nevýhody implementace prostředí hybridního cloudu