Мой SQL немного заржавел, и у меня довольно много трудностей с этой проблемой. Предположим, у меня есть таблица со столбцом Timestamp и столбцом Number. Цель состоит в том, чтобы вернуть набор результатов, содержащий среднее значение для некоторого произвольно выбранного регулярного интервала.
Так, например, если бы у меня были следующие исходные данные, результирующий вывод с 5-минутным интервалом был бы следующим:
time value
------------------------------- -----
06-JUN-12 12.40.00.000000000 PM 2
06-JUN-12 12.41.35.000000000 PM 3
06-JUN-12 12.43.22.000000000 PM 4
06-JUN-12 12.47.55.000000000 PM 5
06-JUN-12 12.52.00.000000000 PM 2
06-JUN-12 12.54.59.000000000 PM 3
06-JUN-12 12.56.01.000000000 PM 4
OUTPUT:
start_time avg_value
------------------------------- ---------
06-JUN-12 12.40.00.000000000 PM 3
06-JUN-12 12.45.00.000000000 PM 5
06-JUN-12 12.50.00.000000000 PM 2.5
06-JUN-12 12.55.00.000000000 PM 4
Обратите внимание, что это база данных Oracle, поэтому решения, специфичные для Oracle, будут работать нормально. Конечно, это можно было бы сделать с помощью хранимой процедуры, но я надеялся выполнить задачу в одном запросе.