如何使用ActiveRecord计算聚合值

时间:2011-12-01 01:02:54

标签: ruby-on-rails ruby activerecord arel

我需要在rails项目的sql表中计算一些聚合值。 我已经看到了ActiveRecord::Calculations中可用的各种方法,但除了内置方法之外我无法使用任何方法。

MyModel.calculate(:stdev, 'value')会抛出异常Undefined method 'stdev' for #<Arel::Attributes::Attribute

我从calculations.rb中的代码中了解到,它在某个时刻column.send(operation)调用,导致错误,我在Arel::Expressions发现除了min之外它无法处理任何事情, max,sum,average和count ...所以,看起来我将无法使用它。

所以,我的问题变成了以下内容:我可以使用标准select方法来获取我想要的内容,并同时获得多个聚合吗?如何获取结果,或为结果列设置别名? 我在考虑使用类似的东西:

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

任何方式,任何建议?或者Arel做任何计算的好方法吗?

非常感谢。

0 个答案:

没有答案