【发布时间】:2013-04-02 01:59:51
【问题描述】:
我有一个简单的类,例如:
class Foo
include DataMapper::Resource
property :id, Serial
property :bar, Text, lazy: false
property :created_on, DateTime, default: lambda { |r,p| DateTime.now }
end
我想选择它们,按 bar 分组并按 max(created_on) 排序。我需要的 SQL 是:
SELECT "bar" FROM "foo" GROUP BY "bar" ORDER BY MAX("created_on") DESC
但我不知道如何使用 DataMapper 获取此信息。
我尝试过类似的方法:
Foo.all(fields: [:bar], unique: true, order: [:created_on.desc.max])
但你不能像那样使用 max 。我不知道该怎么做。
你能帮忙吗?
【问题讨论】:
-
我遇到了同样的问题,无法找到“好的”解决方案。我所做的事情是直接调用 SQL 或添加一个聚合字段(我认为这不适用于您的情况)。
标签: ruby datamapper ruby-datamapper