Hola Saba01:
al igual que Djoaq, tengo algunos problemas para entender qué es lo que estás tratando de obtener... creo que deberías de haber comenzado por decirnos qué es lo que esperas como resultado, de esta manera podríamos proponerte una solución distinta a lo que tienes...
Según lo que creo, lo que pretendes hacer es comparar cada registro con su registro anterior (es decir, el 2 contra el 1, el 3 contra el 2, el 4 contra el 3 y así sucesivamente)... en el caso del id = 1, este no lo podrías comparar contra ninguno, pues es el primero de la lista. Si estoy en lo correcto, esto lo puedes hacer de muchas maneras, una de las más simples sería con un LEFT JOIN, es decir, algo como esto:
Código MySQL:
Ver original+------+---------------------+-------------+
| id | fecha | temperatura |
+------+---------------------+-------------+
| 1 | 2014-01-17 12:08:21 | 22.400 |
| 2 | 2014-01-17 16:39:32 | 15.100 |
| 3 | 2014-01-17 16:42:34 | 15.300 |
| 4 | 2014-01-17 16:45:36 | 15.000 |
| 5 | 2014-01-17 16:51:39 | 14.600 |
| 6 | 2014-01-17 16:54:41 | 14.200 |
+------+---------------------+-------------+
+------+---------------------+-------------+------+---------------------+-------------+
| id | fecha | temperatura | id | fecha | temperatura |
+------+---------------------+-------------+------+---------------------+-------------+
| 2 | 2014-01-17 16:39:32 | 15.100 | 1 | 2014-01-17 12:08:21 | 22.400 |
| 3 | 2014-01-17 16:42:34 | 15.300 | 2 | 2014-01-17 16:39:32 | 15.100 |
| 4 | 2014-01-17 16:45:36 | 15.000 | 3 | 2014-01-17 16:42:34 | 15.300 |
| 5 | 2014-01-17 16:51:39 | 14.600 | 4 | 2014-01-17 16:45:36 | 15.000 |
| 6 | 2014-01-17 16:54:41 | 14.200 | 5 | 2014-01-17 16:51:39 | 14.600 |
+------+---------------------+-------------+------+---------------------+-------------+
Una vez con esto tú puedes hacer los cálculos que deseas (según lo que pones en tu consulta, creo que lo que quieres obtener es el tiempo transcurrido desde la última medición), si esto es correcto entonces simplemente harías lo siguiente:
Código MySQL:
Ver originalmysql
> SELECT T1.
*, TIMEDIFF
(T1.fecha
, t2.fecha
) diferencia
+------+---------------------+-------------+------------+
| id | fecha | temperatura | diferencia |
+------+---------------------+-------------+------------+
| 1 | 2014-01-17 12:
08:
21 | 22.400 | NULL | | 2 | 2014-01-17 16:39:32 | 15.100 | 04:31:11 |
| 3 | 2014-01-17 16:42:34 | 15.300 | 00:03:02 |
| 4 | 2014-01-17 16:45:36 | 15.000 | 00:03:02 |
| 5 | 2014-01-17 16:51:39 | 14.600 | 00:06:03 |
| 6 | 2014-01-17 16:54:41 | 14.200 | 00:03:02 |
+------+---------------------+-------------+------------+
Dale un vistazo para ver si es lo que necesitas.
Saludos
Leo