0
我有一个方法工作得很好(使用rails 3和PostgreSQL);我只是想知道是否有可能使其数据库无关:ActiveRecord聚合函数:是否有一个数据库不可知的'EXTRACT(WEEK from date)'?
FarmGatePrice.average :price, :group => 'EXTRACT(WEEK FROM date)'
据我了解,方法来提取日期一周ISO数值总是特定的数据库。
我可以使用类似虚拟属性:本周所看到here,但似乎:组选项只接受原始的SQL。我也看过this solution,但它不符合我的需求。 另一种方法是使用数据库视图,甚至可以添加一个由回调方法填充的周列:但我不希望混淆我的模式。
那么,任何线索?
对不起,但是当你说这会提高性能,我不明白这一点。存储过程是否应该更好? ...并且它不回答问题的“如何”部分。 –
我怀疑存储过程会像简单整数列上的索引一样快。此外,存储过程意味着把你的业务逻辑放到你的数据库中 - 这不是Rails的方式(做一些谷歌搜索读取围绕它的参数)。用示例回调更新了答案。 –
感谢您的示例。 –