Ciao è un po' che non bazzico da queste parti, vedo che tutto ancora va alla grande! Complimenti!
Devo realizzare un sistema per monitorare alcuni eventi quidni avevo messo in piedi tutto uno scritp php (che vi evito) purtroppo, vista la enorme mole di dati (100,000,000 a settimana) o metto un "crei" oppure devo sfruttare meglio MYSQL.
Allora ho provato a fare una query ottimizzatabasandomi anche sul MAX(IDL) che speravo spostasse il cursore direttamente sul massimo valore relativo al singolo sensore. Purtroppo non avviene così.
e parte del risultato è questoSelect Lettura.IDI,MAX(Lettura.IDL) as 'max',Lettura.IDL as 'ID Lettura',TipoDato.Descrizione , Lettura.Data,NOW() as 'ora', TIMEDIFF(NOW(),Lettura.Data + INTERVAL 11 MINUTE) as 'Differenza',CONCAT((TipoDato.ValoreMedio+(ValoreL ettura.Valore*TipoDato.Incremento)),' ',TipoDato.Unita) as Valore from Lettura left join ValoreLettura on Lettura.IDL=ValoreLettura.IDL Left join TipoDato ON TipoDato.IDD=ValoreLettura.IDD Group By Lettura.IDI,Lettura.IDS,ValoreLettura.IDD;
Come vedere max non corrisponde a ID Lettura.IDI | max | ID Lettura | Descrizione | Data | ora | Differenza | Valore |
+-------+-------+------------+-------------+---------------------+---------------------+------------+-----------+
| 01001 | 92798 | 1062 | Temperatura | 2007-12-31 16:24:40 | 2008-01-06 09:31:25 | 136:55:45 | 21.3 ?C |
| 01001 | 92798 | 1062 | Umidit? | 2007-12-31 16:24:40 | 2008-01-06 09:31:25 | 136:55:45 | 32.66 % |
| 01001 | 92797 | 1061 | Temperatura | 2007-12-31 16:24:40 | 2008-01-06 09:31:25 | 136:55:45 | 20.66 ?C |
| 01001 | 92797 | 1061 | Umidit? | 2007-12-31 16:24:40 | 2008-01-06 09:31:25 | 136:55:45 | 33.43 % |
La soluzione sarebbe passare a MYSQL (ultima versione) e fare una stored procedure e si po' studiare... invece mi domando con questa versione di mysql 4,1,2 è possibile fare in modo che venga esegutia la select sul relativo valore massimo dell'IDL?
è contorto lo so ma se fosse stato facile non vi venivo a molestare il giorno della befana!!!!
CIAO A TUTTI