1

我想有一种简单的方法来对我的时间序列数据运行类似以下查询的查询:

“相隔 7 天内最典型的事件是什么”?

我可以通过使用 SQL 和 Java 程序来做到这一点,通过查看每一行并运行一个查询,该查询会在 7 天之前或之后查找所有事件,但这不是很优雅,性能也会很糟糕。有没有另一种方法可以优雅地使用 SQL 或不同的查询语言来做到这一点?

简化的表结构如下:

thetime datetime
eventid int
magnitude double
intensity double

我特别不想描述数据是关于什么的,因为我正在寻找一个通用的解决方案。

4

1 回答 1

2

您可以使用自联接来执行此类操作。这是 SQL Server 的有效语法,但是当我们不知道表结构或您使用的 RDBMS 时,很难为您的设置自定义...

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
于 2011-03-16T12:39:46.900 回答