Ho un'applicazione che la misura continuamente. (Circa ogni secondo - dipende dal dispositivo)
Ad esempio, diciamo che i dati sono CPUTemp
(utilizzati come esempio in una risposta a una domanda correlata: Clean Architecure: creazione di un'entità da un insieme di altre entità )
I dati di ogni misurazione sono scritti nella tabella CPU_TEMP_SAMPLE
.
Alla fine di ogni giornata comprime i dati calcolando il minimo, il massimo e la media per quel giorno e scrivendo i dati su una tabella CPU_TEMP_DAY
.
Ho un CpuTempRepository
che ottiene i dati calcolandoli dalla tabella CPU_TEMP_SAMPLE
(se è per il giorno corrente) o semplicemente leggendolo dalla tabella CPU_TEMP_DAY
se è per un giorno precedente.
Voglio essere in grado di ottenere la lettura minima e massima per intervalli specifici da CPU_TEMP_SAMPLE
. (Quindi, invece di restituire il campione di temperatura massima per quel giorno, desidero ottenere la temperatura massima registrata su 30 secondi, quindi in realtà sto comprimendo 30 secondi di misure in un campione)
Come potrei fare questo?
Un modo è quello di scrivere i dati min, max e medi di ogni intervallo su una nuova tabella CPU_TEMP_INTERVAL
ogni 30 secondi e quindi ottenere il valore massimo e amp; Minimo da lì, ma non sono sicuro se questo è il modo giusto - cosa succede se ho bisogno di calcolare per intervalli diversi?