Hola de nuevo IsmaPolo...
Si entendí correctamente, creo que no hay necesidad de hacer 5 subconsultas como comenta el compañero jurena, a reserva de que pruebes y nos comentes, pero primero veamos si estoy entendiendo bien... En mi post pasado de pedía que nos pusieras algunos datos de ejemplo, pero solo pusiste la salida (y me es imposible saber a partir de qué datos obtuviste el 7.10 y los demás datos) así es que voy a poner algunos datos de ejemplo por mi cuenta. Voy a suponer que tienes la siguiente información en tu tabla:
Código MySQL:
Ver original+------+---------+------------+------+
| ID | LUGAR | FECHA | TMAX |
+------+---------+------------+------+
| 1 | lugar 1 | 2011-10-01 | 10 |
| 2 | lugar 1 | 2011-10-02 | 20 |
| 3 | lugar 1 | 2011-10-03 | 30 |
| 4 | lugar 1 | 2011-10-04 | 40 |
| 5 | lugar 1 | 2011-10-05 | 50 |
| 6 | lugar 1 | 2011-10-06 | 60 |
| 7 | lugar 1 | 2011-10-07 | 70 |
| 8 | lugar 1 | 2011-10-08 | 80 |
| 9 | lugar 1 | 2011-10-09 | 90 |
| 10 | lugar 1 | 2011-10-10 | 100 |
+------+---------+------------+------+
10 rows
in set (0.00 sec
)
si entendí bien, los promedios se deberían calcular así:
Código:
2011-10-01 = 10 / 1 = 10
(Pues no hay ninguna temperatura con fecha anterior)
2011-10-02 = 10 + 20 / 2 = 15
(Pues existe una temperatura con fecha anterior)
2011-10-03 = 10 + 20 + 30 / 3 = 20
(Pues existe dos temperatura con fecha anterior)
2011-10-04 = 10 + 20 + 30 + 40 / 4 = 25
(existe 4 temperatura con fecha anterior)
2011-10-05 = 10 + 20 + 30 + 40 + 50 / 5 = 30
(existe 5 temp. con fecha anterior)
2011-10-06 = 20 + 30 + 40 + 50 + 60 / 5 = 40
(aunque existen 6 temp con fecha anterior, solo se toman las últimas 5,
pues con respecto a la del primer día ya han transcurrido más de 6 días)
...
Si estoy en lo correcto y esto es lo que quieres obtener podrías hacerlo así:
Código MySQL:
Ver original -> DATEDIFF(T1.fecha
, T2.fecha
) < 5) 5dayMovAvg
+------------+------------+
| fecha | 5dayMovAvg |
+------------+------------+
| 2011-10-01 | 10.0000 |
| 2011-10-02 | 15.0000 |
| 2011-10-03 | 20.0000 |
| 2011-10-04 | 25.0000 |
| 2011-10-05 | 30.0000 |
| 2011-10-06 | 40.0000 |
| 2011-10-07 | 50.0000 |
| 2011-10-08 | 60.0000 |
| 2011-10-09 | 70.0000 |
| 2011-10-10 | 80.0000 |
+------------+------------+
10 rows
in set (0.02 sec
)
Dale un vistazo para ver si es lo que requieres, y prueba también la solución de jurena.
Saludos
Leo.