sql >> Base de Datos >  >> RDS >> Mysql

MySQL:seleccione consulta, incremento de 5 minutos

Lo siguiente le dará una muestra que consta de cualquier dato con una marca de tiempo en :00, :05, :10...

SELECT time, temp_out FROM wmr200 WHERE date(time) = curdate()
    AND mod(minute(time),5) = 0

Estoy usando la función de módulo para comprobar si la parte de los minutos del tiempo es (0 o) divisible por 5.

Si solo necesita un resultado para cada segmento de tiempo, tenemos que volvernos un poco más complejos.

SELECT concat(date(time),' ',hour(time),':',round(minute(time)/5,0)*5), 
       min(temp_out), avg(temp_out), max(temp_out) 
FROM wmr200 
GROUP BY date(time), hour(time), round(minute(time)/5,0)*5

No tengo acceso a una instancia de MySQL para probarlo en este momento, pero esta es la idea. Se agrupa cada cinco minutos, agrupando por fecha, hora y round(minute(time)/5,0)*5 - que redondea el minuto al 5 más cercano.

Selecciona el valor de tiempo en el que se debe agrupar, y el min, avg y max temp_out, ya que no estaba seguro de cuál de estos se aplicaría mejor a su situación.

Sin embargo, si su base de datos no tiene datos para un tramo de cinco minutos (o tramo de 30 minutos, si eso es lo que está usando), es posible que aún no tenga datos para un punto de muestra.