2015-01-07 5 views
0

나는 나이에 대한 열이 인 명의 테이블을 보유하고 있습니다.레일에서 그룹, 개수, 보유 및 정렬

각 연령의 사람들을 가장 오래된 것부터 가장 어린 것까지 계산하고, 최소 2 명이 속한 나이별로 필터링 할 수있는 방법은 무엇입니까?

나는 원시 SQL에서을 작성하는 방법 : 레일에서

SELECT 
    COUNT(1) AS people_count, 
    age 
FROM people 
GROUP BY age 
HAVING people_count > 1 
ORDER BY age DESC 

(나는 그것을 할 방법을 잘 모르겠어요) :

Person.group(:age).count 나에게 나이까지 카운트를 얻을 것이다 , 나이까지 내림차순으로 정렬하는 방법을 알아 내거나 having 절을 추가 할 수는 없습니다.

답변

1

시도 뭔가 같은 :

Person.select("id, age").group(:id, :age).having("count(id) > 1").order("age desc")

1
Person.select('COUNT(1) as people_count').order('age DESC').group(:age).having('people_count > 1')