|
|
|
Выборка с прореживанием по дате
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. суть задачи - "проредить" данные, записанные в таблицу с нужным интервалом времени "прореживания" (например 10 мин). (есть поле data_date timestamp) в таблицу пишутся данные от датчика (ретроспективно). Может писаться неравномерно по времени - например за час может быть 10 значений, а может и не быть вовсе, а потом и все 100 значений за следующий час.. Нужно выбрать данные за некоторый период, но не все - а скажем чтобы каждая последующая запись была не менее чем через ХХ минут от предыдущей. Как сделать это шустрее и чтобы итоговые результаты запроса были максимально на равные промежутки времени разнесены? т.е. скажем промежуток времени между соседними записями был максимально близок к указанному интервалу (10 мин например). (в таблице несколько миллионов записей и их число постоянно растет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2015, 22:03 |
|
||
|
Выборка с прореживанием по дате
|
|||
|---|---|---|---|
|
#18+
twistfireмаксимально на равные промежутки времени разнесеныЕсли исходить из оптимальной минимизации ско по скользящей сетке, то эта задача на миллионах быстро не решается. Исходить из жесткости критерия "не меньше", то здесь упрощенный start of group через оконные функции или рекурсию. Более тривиальное, но при достаточной частоте событий малоотклоняющееся от оптимума решение - элементарная группировка по округлению к десяти минутам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2015, 00:22 |
|
||
|
Выборка с прореживанием по дате
|
|||
|---|---|---|---|
|
#18+
> Как сделать это шустрее При наличии индекса по data_date попробуйте идею Быстрый подсчет distinct values по индексированным полям , Loose indexscan . Только вам нужно будет заменить условие "WHERE col > t.col" на "WHERE col > t.col + ХХ минут". > чтобы итоговые результаты запроса были максимально на равные промежутки времени разнесены А вот с этим вижу проблему. Разные комбинации выбираемых точек придется проверить. Какая из них "максимально равно разнесенная". Кстати, что это формально означает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2015, 13:39 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38941092&tid=1998030]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 493ms |

| 0 / 0 |
