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.

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top