Задача: есть таблица с данными (много),
table {
id,
category
value,
time
}
время не упорядоченно, т.е. возможны ситуации когда [N+1].time < [N].time
данные нужно:
1 отфильтровать в виде «category in (1...N)» и в диапазоне времени
2 найти пары записей между которыми значение value пересекает некую границу.
3 сгруппировать данные по категориям и отсортировать по времени
Внимание, фокус! Оптимальный алгоритм работы на sql не реализуем, а у планировщиков запросов субд свое мнение на этот счет (особенно отсортировать в середине раз десять), а ведь задача решается в один проход + сортировка резульатата
И тут все в белом NoSQL системы где mapreduce и тупые империативные или функциональные запросы 8(