2013-12-19 2 views
0

테이블에 몇 가지 레코드가 있으며 열은 id, link, title입니다.테이블에서 행이 반복되는 횟수를 확인하십시오.

데이터베이스에있는 몇 개의 행에 동일한 값을 가진 link column이 있으며, link 개의 행이 동일한 값을 갖는 방법을 알고 싶습니다.

나는 그것을하는 방법에 대한 아이디어가 있지만 나는 훨씬 쉬운 해결책이 있다고 생각한다.

o = Repo.select(:link).distinct 
o.each do |l| 
    Repo.where(link: l.link).size 
end 

감사합니다.

+0

이 [링크]에서 그룹 ''에서보세요 (http://guides.rubyonrails.org/active_record_querying.html#group :

Repo.group(:link).count 

는 같은 해시를 반환합니다). – AbM

+0

select ("link as link, count (*) as count"). 그룹 (: link), 감사합니다. – John

답변

0

을의 group 방법은 그룹 것이다 선택한 매개 변수를 기반으로 쿼리. 그래서 :

{link1=> count_for_link_1, link2=> count_for_link_2 ...} 
1

당신은 사용할 수 있습니다 : 위 내 의견으로 당

Repo.select('count(*)').group(:link)

관련 문제