检查一行在表中重复的次数

时间:2013-12-19 14:49:33

标签: ruby-on-rails activerecord

我在表格中有一些记录,其中包含列:id, link, title

数据库中的几行没有link column具有相同的值,我想知道link有多少行具有相同的值。

我知道如何做到这一点,但我认为有一个很简单的解决方案。

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

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以使用:

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

答案 1 :(得分:0)

根据我上面的评论,group方法会根据所选参数对查询进行分组。所以:

Repo.group(:link).count

将返回哈希,例如:

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