У меня есть база данных записей, в которой я хочу выбрать самую последнюю неделю дней и сгруппировать по дням, чтобы получить счет за день для этих записей. Если бы я писал запрос MySQL вручную, я бы начал с чего-то вроде:
SELECT COUNT( id ) AS count, DAY( created_at ) AS the_day
FROM `results`
GROUP BY the_day
Как я могу использовать ActiveRecord
для абстрагирования этого запроса, чтобы он работал и для PostgreSQL? Итак, пока у меня есть область для выбора этого запроса выше, но я не уверен, что это будет работать с PostgreSQL:
scope :recent, lambda {
select(['id', 'COUNT(id) AS the_count', 'DAY(created_at) AS the_day'])
.where(:created_at => 7.days.ago.utc...Time.now.utc)
.order('the_day DESC')
.group('the_day')
}