Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL:Среден интервал между записите

Интуитивно това, което питате, трябва да е еквивалентно на интервала между първата и последната дата, разделен на броя на датите минус 1.

Нека обясня по-подробно. Представете си, че датите са точки на линия (+ са налични дати, - липсват ли дати, първата дата е 12-ти и смених последната дата на 24 декември за илюстрация):

++----+---+-+

Сега това, което наистина искате да направите, е да разпределите равномерно датите между тези редове и да разберете колко дълго е между всеки от тях:

+--+--+--+--+

За да направите това, просто вземете броя на дните между последния и първия ден, в този случай 24 - 12 =12, и го разделите на броя на интервалите, които трябва да отделите, в този случай 4:12 / 4 = 3 .

С MySQL заявка

SELECT DATEDIFF(MAX(dt), MIN(dt)) / (COUNT(dt) - 1) FROM a;

Това работи на тази таблица (с вашите стойности връща 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Свържете се с MySQL база данни в локална мрежа

  2. Кой йерархичен модел трябва да използвам? Съседство, вложени или изброени?

  3. Как да изчислим приходите в MySQL

  4. cc1:грешка:неразпозната опция за команден ред -Wno-null-conversion в рамките на инсталиране на python-mysql на mac 10.7.5

  5. SqlNullValueException при изпълнение на съхранена процедура с MySqlCommand