Использование функции SQL как группы по полю в datamapper (ruby) - PullRequest
3 голосов
/ 17 августа 2010

Я пытаюсь использовать чуть более интересную причину GROUP BY, чем то, что, похоже, поддерживается DataMapper из коробки.

Запрос, который я хочу сгенерировать, выглядит примерно так:

SELECT SUM(downloads), SUM(uploads) FROM daily_stats GROUP BY YEARWEEK(date)

Я бы хотел просто сказать DataMapper что-то вроде:

DailyStat.aggregate(:downloads.sum, :uploads.sum, :fields => [ :date.yearweek ])

С чего бы мне начать? Это легко достижимо?

1 Ответ

3 голосов
/ 23 января 2011

Мне бы очень понравилось то же самое, к сожалению, dm-aggregates написан не так, как это возможно.

Моя рекомендация - перейти на SQL, поскольку вы получаете суммы из своей таблицы.

DataMapper.repository.adapter.select('SELECT SUM(downloads), SUM(uploads) FROM daily_stats GROUP BY YEARWEEK(date)')

Это должно дать вам массив структур с суммированными загрузками и загрузками.

...