Как выполнить запросы типа «в течение пяти дней» для данных временных рядов? - PullRequest
1 голос
/ 16 марта 2011

Я хотел бы иметь простой способ выполнения запросов, подобных следующему запросу, для моих данных временных рядов:

«Каковы наиболее типичные события, происходящие в течение семи дней после рождения?»

Я мог бы сделать это, используя SQL и Java-программу, просматривая каждую строку и выполняя запрос, который просматривает все события на семь дней раньше или позже, но это не очень элегантно, и производительность будет ужасной. Есть ли другой способ сделать это элегантно, используя SQL или другой язык запросов?

Упрощенная структура таблицы выглядит следующим образом:

thetime datetime
eventid int
magnitude double
intensity double

Я специально не хочу описывать, о чем эти данные, так как я ищу общее решение.

1 Ответ

2 голосов
/ 16 марта 2011

Вы можете использовать самостоятельное соединение, чтобы сделать что-то подобное.Это допустимый синтаксис для SQL-сервера, но его сложно настроить, если мы не знаем структуру таблицы или используемую СУБД ...

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...