Come posso eseguire query come “entro cinque giorni” sui dati di serie temporali?
-
25-10-2019 - |
Domanda
Mi piacerebbe avere un modo semplice per eseguire query come la seguente query sui miei dati di serie temporali:
"Quali sono gli eventi più tipici avvenire entro sette giorni dalla vicenda"?
ho potuto fare questo utilizzando SQL e un programma Java, cercando in ogni riga ed eseguire una query, che guarda in alto di tutti gli eventi di sette giorni precedenti o successivi, ma questo non è molto elegante e le prestazioni saranno orribile. C'è un altro modo per fare questo con eleganza utilizzando un linguaggio di query SQL o diversa?
La struttura della tabella semplificata è simile alla seguente:
thetime datetime
eventid int
magnitude double
intensity double
In particolare mi Non voglio descrivere ciò che i dati è di circa, come io sono alla ricerca di una soluzione generale.
Soluzione
È possibile utilizzare un auto si uniscono per fare qualcosa di simile. Questa è la sintassi valida per il server SQL, ma è difficile da personalizzare per la configurazione, quando non sappiamo struttura della tabella o cosa RDBMS si utilizza ...
SELECT TOP 10
a.Event as 'First Event',
b.event as 'Second Event',
ABS(CAST((a.timefield - b.timefield) as INT)) as 'Time Apart'
FROM MYtable a
INNER JOIN Mytable B
ON a.IDField <> b.IDField
WHERE (ABS(CAST((a.timefield - b.timefield) as INT)) <= 5