Rails 4.2.5, PostgreSQL 9.4+Добавить переменную в результате в запрос
У меня есть таблица DailyMetric. Как следует из названия, он имеет ежедневные показатели для каждого ассоциированного участника. Я пытаюсь обобщить эти показатели на различные периоды, например, на неделю до настоящего времени, на прошлой неделе, на месяц до даты и т. Д. В запросе у меня есть выбранные записи, но я хочу суммировать записи за период, но этот период является внешняя переменная в таблицу. Запрос, как он стоит, это:
records = DailyMetric.
where('metrics_date >= ? AND metrics_date <= ?', period.first, period.last).
select("associate_logon as logon, metrics_date as logon_date,
sum((metrics #>> '{\"Login\"}')::NUMERIC) as total_logons").
group('associate_logon, metrics_date')
В результате, по состоянию на сегодняшний день, является то, что я получаю записи для каждого ассоциированного на понедельник и вторник на неделю до даты, когда неделя начинается в понедельник. Вместо группы, использующей metrics_date, я хотел бы группировать период использования.
Могу ли я получить желаемый результат, изменив запрос или мне нужно запустить такое резюме извне самостоятельно? При необходимости я могу сделать внешнее резюме. Я просто хотел бы знать, могу ли я сделать это в запросе.
FWIW и для полноты статистики, такие как Логин, хранятся в PostgreSQL с использованием JSONB.