Группа Ruby Datamapper с макс.

У меня есть таблица MySQL:

id       int
a        varchar
b        varchar
c        varchar
version  int
active   bool

Я хочу получить максимальную группу версий по a, b и c, поэтому для этого у меня есть следующий запрос:

select a, b, c, max(version) as version from mytbl where active = 1 group by a, b, c

Я использую Datamapper с Sinatra. Приведенное выше имя модели таблицы — «mytbl». Что будет эквивалентом вышеуказанного запроса в datamapper?


person JVK    schedule 18.10.2012    source источник


Ответы (1)


Я понял :)

mytbl.aggregate(:version.max, :active => 1, :fields => [:a, :b, :c], :unique => true, :order => nil)

or

mytbl.aggregate(:version.max, :conditions => [ 'active = ?', 1], :fields => [:a, :b, :c], :unique => true, :order => nil)

Однако я не смог найти способ использовать псевдоним max (версия) в качестве версии. Он возвращает max(версия) в качестве имени столбца. Это не имеет большого значения ;)

person JVK    schedule 18.10.2012