我有一个工作得很好的方法(使用 rails 3 和 PostgreSQL);我只是想知道是否有可能使其与数据库无关:
FarmGatePrice.average :price, :group => 'EXTRACT(WEEK FROM date)'
据我了解,从日期中提取一周 ISO 编号的方法始终是特定于数据库的。
我可以使用虚拟属性 :week 之类的东西,如此处所示,但似乎 :group 选项只接受原始 SQL。我也看到了这个解决方案,但它不符合我的需求。另一种方法是使用数据库视图,甚至添加一个由回调方法填充的 :week 列 - 但我不想弄乱我的模式。
那么,有什么线索吗?