1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| CREATE TEMPORARY TABLE tmp_periode (debut TIME, fin TIME);
INSERT INTO tmp_periode
VALUES ('07:30:00', '11:30:00'),
('11:30:00', '12:30:00'),
('12:30:00', '14:30:00'),
('14:30:00', '15:00:00'),
('15:00:00', '16:00:00'),
('16:00:00', '18:00:00'),
('18:00:00', '19:00:00');
SELECT t.debut, t.fin,
COUNT(p.nom) AS nb_presents
FROM presence p
INNER JOIN tmp_periode t
ON p.debut_presence BETWEEN t.debut AND t.fin
OR p.fin_presence BETWEEN t.debut AND t.fin
GROUP BY t.debut, t.fin |