Frage

Ich möchte eine einfache Möglichkeit haben, Abfragen wie die folgende Abfrage in meinen Zeitreihendaten auszuführen:

"Was sind die typischsten Ereignisse, die innerhalb von sieben Tagen voreinander stattfinden können"?

Ich könnte dies tun, indem ich SQL und ein Java -Programm nutze, indem ich jede Reihe betrachte und eine Frage ausführt, die sieben Tage früher oder später alle Ereignisse nachgibt, aber dies ist nicht sehr elegant und die Leistung wird schrecklich sein. Gibt es eine andere Möglichkeit, dies elegant mit SQL oder einer anderen Abfragesprache zu tun?

Die vereinfachte Tabellenstruktur ist wie die folgende:

thetime datetime
eventid int
magnitude double
intensity double

Ich möchte speziell nicht beschreiben, worum es bei den Daten geht, da ich nach einer allgemeinen Lösung suche.

War es hilfreich?

Lösung

Sie können ein Selbst miteinander verwenden, um so etwas zu tun. Dies ist eine gültige Syntax für SQL Server, aber es ist schwierig, Ihr Setup anzupassen, wenn wir keine Tabellenstruktur kennen oder welche RDBMs Sie verwenden ...

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top