Как я могу рассчитать совокупные значения, используя ActiveRecord - PullRequest
1 голос
/ 01 декабря 2011

Мне нужно вычислить некоторые агрегированные значения в таблице sql в моем проекте rails.Я видел различные методы, доступные в ActiveRecord::Calculations, но я не могу использовать ничего, кроме встроенных методов.

MyModel.calculate(:stdev, 'value') выдает исключение Undefined method 'stdev' for #<Arel::Attributes::Attribute.

Из кода в calculations.rb я понимаю, что он вызывает в какой-то момент column.send(operation), что вызывает ошибку, и в Arel::Expressions я обнаруживаю, что он не может обрабатывать ничего, кроме min, max, sum, среднего и count... Итак, похоже, что я не смогу это использовать.

Итак, мой вопрос становится следующим: могу ли я использовать стандартный метод select, чтобы получить то, что я хочу, и получить несколько агрегатовв то же время ?Как я могу получить результаты или установить псевдонимы для полученных столбцов?Я думал об использовании чего-то подобного:

MyModel.select("stdev(value)","average(value)")

В любом случае, совет?Или какой-нибудь приятный трюк для Арела в моих расчетах?

Большое спасибо.

...