группировать каждые 10 минут, а также получить 'captureTime' для минимальных / максимальных значений - PullRequest
0 голосов
/ 14 ноября 2011
-----------------------------------------------------------
chan1   |chan2  |chan3  | captureTime           |id
-----------------------------------------------------------
20      |21     |25     | 2011-10-11 00:00:00   |1
-----------------------------------------------------------
21      |5      |7      | 2011-10-11 00:01:00   |1
-----------------------------------------------------------
                .
                .
-----------------------------------------------------------
12      |25     |21     | 2011-10-11 00:08:00   |1              
-----------------------------------------------------------
20      |25     |21     | 2011-10-11 00:09:00   |1
-----------------------------------------------------------
21      |18     |14     | 2011-10-11 00:10:00   |1
                .
                .
                .
-----------------------------------------------------------
15      |26     |23     | 2011-10-11 23:58:00   |1
-----------------------------------------------------------
17      |14     |32     | 2011-10-11 23:59:00   |1

Таблица хранит значения chan1, chan2 и chan3 каждую минуту.Я хочу получить максимальные и минимальные значения для каждых 10 минут, а также иметь соответствующий captureTime для минимальных / максимальных значений.

На основе этих требований Как написать SQL-запрос?Спасибо!

-------- Редактировать ---------

Использование mySql DB

--- Требуемый выход ---

Как видно из БД, chan1 достигает минимального значения в 00:08:00, а chan2 и chan3 оба достигают минимального значения в 00:01:00в первые 10 минут.Остальные 10 минут будут по тому же сценарию.В каждом 10-минутном интервале chan1 / chan2 / chan3 имеют значение min / max отдельно.Эти минимальное / максимальное значение и связанное с ними значение captureTime необходимо возвращать после выполнения SQL-запроса.

1 Ответ

0 голосов
/ 14 ноября 2011
SYSDATE - (10/1440) 

дает вам текущее время минус 10 минут в соответствии с этим: http://www.akadia.com/services/ora_date_time.html

Это должно быть примерно так:

SELECT * FROM table WHERE captureTime > SYSDATE - (10/1440)
...