Сумма суммы перекрывающихся диапазонов даты и времени в MySQL

У меня есть таблица событий, каждое с StartTime и EndTime (как тип DateTime) в таблице MySQL.

Я пытаюсь вывестиsum of overlapping times и количество событий, которые перекрываются.

Какой самый эффективный / простой способ выполнить этот запрос в MySQL?

CREATE TABLE IF NOT EXISTS `events` (
  `EventID` int(10) unsigned NOT NULL auto_increment,
  `StartTime` datetime NOT NULL,
  `EndTime` datetime default NULL,
  PRIMARY KEY  (`EventID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=37 ;


INSERT INTO `events` (`EventID`, `StartTime`, `EndTime`) VALUES
(10001, '2009-02-09 03:00:00', '2009-02-09 10:00:00'),
(10002, '2009-02-09 05:00:00', '2009-02-09 09:00:00'),
(10003, '2009-02-09 07:00:00', '2009-02-09 09:00:00');


# if the query was run using the data above,
# the table below would be the desired output

# Number of Overlapped Events | Total Amount of Time those events overlapped.
1, 03:00:00
2, 02:00:00
3, 02:00:00

Целью этих результатов является создание счета за использованные часы. (Если у вас запущено одно мероприятие, вы можете заплатить 10 долларов в час. Но если два события запущены, вам нужно заплатить только 8 долларов в час, но только за период времени, когда у вас было два события.)

Ответы на вопрос(3)

Ваш ответ на вопрос