Podsumuj zakres nakładających się zakresów datetime w MySQL

Mam tabelę zdarzeń, z których każda ma StartTime i EndTime (jako typ DateTime) w tabeli MySQL.

Próbuję wydrukowaćsuma nakładających się czasów i liczba wydarzeń, które się pokrywały.

Jaki jest najbardziej skuteczny / prosty sposób wykonania tego zapytania w 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

Celem tych wyników jest wygenerowanie rachunku za wykorzystane godziny. (jeśli prowadzisz jedno wydarzenie, możesz zapłacić 10 dolarów za godzinę. Ale jeśli dwa wydarzenia są uruchomione, musisz zapłacić tylko 8 dolarów za godzinę, ale tylko przez okres, w którym odbyły się dwa wydarzenia).

questionAnswers(3)

yourAnswerToTheQuestion