Bueno, creo que solucione el tema pero me parece que le faltaria una revision de mi parte, cualquier cosa pregunto de nuevo =)
Como yo guardo los tiempos en horas unix le hice un cambio a la consulta y el resultado fue:
Código:
SELECT AVG( Temperatura ) Temperatura, Fecha
FROM `tabla`
WHERE FechaHora >=1230786000
AND FechaHora <1230814800
GROUP BY (
( 60 /30 ) * HOUR( FROM_UNIXTIME( Fecha ) ) + FLOOR( MINUTE( FROM_UNIXTIME( Fecha ) ) /30 )
)
LIMIT 0 , 30
Supongo que se comporta como debe ser, si algun erudito me confirma muy agradecido estare =)
El otro error que cometia era usar between y no tenia en cuenta que la "fecha final" tambien pertenece a una nueva media hora (Espero haber sido claro).
Gente, muchas gracias y espero que me corrigan si le parece una burrez la consulta.
Aunque como todo, esta forma tiene un problema, que pasa si busco entre las 5:20 y las 8:20?? Lo que estoy viendo que hace es devolver en un registro los registros entre las 5:20 y 5:30 y despues hace normal, me parece que ahi me tocaria a mi hacer el procesamiento?