Bueno con esto yo creo que funciona, aunque visualmente no sea muy ortodoxo:
Cita: SELECT
IF (HOUR(hora) BETWEEN 0 and 5,1,
IF (HOUR(hora) BETWEEN 6 and 11,2,
IF (HOUR(hora) BETWEEN 12 and 18,3,4))) AS Periodo,
COUNT (
IF (HOUR(hora) BETWEEN 0 and 5,1,
IF (HOUR(hora) BETWEEN 6 and 11,2,
IF (HOUR(hora) BETWEEN 12 and 18,3,4))) AS Registros
)
FROM tabla
GROUP BY IF (HOUR(hora) BETWEEN 0 and 5,1,
IF (HOUR(hora) BETWEEN 6 and 11,2,
IF (HOUR(hora) BETWEEN 12 and 18,3,4)))
Soy algo novato en todo esto, ya me dirás.