¿Cómo realizar consulta mysql comparando registros de tiempo?
Probablemente la pregunta sea confusa pero aquí se las aclaro. Tengo una tabla con una columna datetime donde se almacena la fecha y hora del registro, los registros de la tabla tienen distinto origen es decir, la tabla concentra los registros de varios endpoints remotos.
El diseño de la tabla es más o menos así:
id endpoint numero_personas fecha_hora
1 50 12 02-08-2019 06:20:23
2 50 23 02-08-2019 06:21:34
3 51 10 02-08-2019 06:21:13
4 50 19 02-08-2019 06:22:26
La consulta que necesito hacer es con base en la columna datetime para nos de este resultado:
fecha_hora suma_personas_endpoint50 suma_personas_endpoint51
02-08-2019 06:20:00 12 0
02-08-2019 06:21:00 23 10
02-08-2019 06:22:00 19 0
Para este ejemplo se agrupa el tiempo cada 1 minuto pero lo que se busca que se se agrupe según las necesidades del usuario por ejemplo cada 1, 5, 10 min, etc. Hasta el momento ya logre hacer la agrupación de un solo endpoint pero no he podido agregar el del segundo. Así esta mi consulta:
SELECT FROM_UNIXTIME(FLOOR((UNIX_TIMESTAMP(fecha_hora))/60)*60) as fecha_hora,SUM(numero_personas) as suma_personas_endpoint50 FROM tabla WHERE endpoint=50 GROUP BY fecha_hora ORDER BY fecha_hora
¿Cómo puedo agregar la agrupación del segundo endpoint pero respetando un orden de tiempo y en caso de que en algún minuto no existan registros ya sea de uno o de los dos endpoint aun así me muestre la fila en ceros?.