Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Agrupar cada 30 minutos

Estas en el tema de Agrupar cada 30 minutos en el foro de Mysql en Foros del Web. Saludos, Estoy tratando de hacer una consulta que me haga lo siguiente. Tengo una tabla con datos minutales de datos de un analizador. Me piden ...
  #1 (permalink)  
Antiguo 11/06/2008, 07:57
 
Fecha de Ingreso: marzo-2006
Mensajes: 16
Antigüedad: 18 años, 9 meses
Puntos: 0
Agrupar cada 30 minutos

Saludos,


Estoy tratando de hacer una consulta que me haga lo siguiente.

Tengo una tabla con datos minutales de datos de un analizador.

Me piden datos cada media hora es por eso que lo quisiera hacer en una consulta en vez de ir uno por uno hasta llegar a 30 o 00.

La clausula estaria en el group by pero no se como hacerla alguna sujerencia?
  #2 (permalink)  
Antiguo 11/06/2008, 09:06
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Observa esto sacado de: http://forums.mysql.com/read.php?10,...807#msg-202807

GROUP BY ((60/periodMinutes) * HOUR( thistime ) + FLOOR( MINUTE( thistime ) / periodMinutes ))

where thistime is the TIME column and periodMinutes is the period length in minutes

Donde pone periodMinutes, pones 30; y donde thistime, pones el nombre de tu campo de tipo TIME. La lógica parece sencilla: divides (siempre que se trata de números que sean divisores de 60) 60 por el número de minutos del período, y el resultado lo multiplicas por el número de horas, y a eso le sumas el número entero más elevado de los minutos divididos por el período: por ej. 02:35:00 agruparía por 2*2+1 = 5, agruparía por 5.


Para agrupar por cuarto de hora, aconseja esto (So to group by 15-min periods, write ...):

SELECT ...
GROUP BY ( 4 * HOUR( thistime ) + FLOOR( MINUTE( thistime ) / 15 ))

Última edición por jurena; 11/06/2008 a las 10:50
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:40.