我需要在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做任何计算的好方法吗?
非常感谢。