Лучший способ подсчета записей по произвольным временным интервалам в Rails + Postgres

Мое приложение имеетEvents таблица с отметками времени событий.

Мне нужно сообщить количество событий во время каждого из последнихN временные интервалы. Для разных отчетов интервал может бытькаждую неделю" или же "ежедневно" или же "каждый час или же "каждый 15-минутный интервал ».

Например, пользователь может отобразить, сколько заказов он получил каждую неделю, день, час или четверть часа.

1) Я предпочитаю динамически выполнять один запрос SQL (ям с использованием Postgres), которая группируется по произвольному интервалу времени. Есть способ сделать это?

2) Простой, но уродливый метод грубой силы состоит в том, чтобы сделать один запрос для всех записей в пределах начального / конечного таймфрейма, отсортированных по метке времени, а затем создать метод подсчета вручную для любого интервала.

3) Другой подход заключается в добавлении отдельных полей в таблицу событий для каждого интервала и статическом храненииthe_week ,the_daythe_hour, а такжеthe_quarter_hour поле, поэтому я беруудар' во время создания записи (один раз) вместо того, чтобы каждый раз сообщать об этом поле.

Какие'Наилучшая практика здесь, учитывая, что я мог бы изменить модель и предварительно сохранить интервальные данные, если требуется (хотя и за скромный счет удвоения ширины таблицы)?

Ответы на вопрос(1)

Ваш ответ на вопрос