2012-10-18 3 views
3

와 나는 MySQL의 테이블이 기준 :루비 Datamapper 그룹 최대

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 with Sinatra를 사용하고 있습니다. 위의 테이블 모델 이름은 "mytbl"입니다. 위의 쿼리에 해당하는 datamapper는 무엇입니까?

답변

1

내가 :)있어 나는 버전으로 별칭 최대 (버전) 할 수있는 방법을 찾을 수 없습니다 그러나

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

또는

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

. 열 이름으로 max (version)을 리턴합니다. 그다지 큰 문제는 아니지만)