Suma la cantidad de rangos de fecha y hora superpuestos en MySQL

Tengo una tabla de eventos, cada uno con StartTime y EndTime (como tipo DateTime) en una tabla MySQL.

Estoy tratando de dar salida a lasuma de tiempos superpuestos y el número de eventos que se superponen.

¿Cuál es la forma más eficiente / simple de realizar esta consulta en 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

El propósito de estos resultados es generar una factura por las horas utilizadas. (Si tiene un evento en ejecución, es posible que pague 10 dólares por hora. Pero si hay dos eventos en ejecución, solo tiene que pagar 8 dólares por hora, pero solo por el período de tiempo en que tuvo dos eventos en ejecución).

Respuestas a la pregunta(3)

Su respuesta a la pregunta