Sql Rails嵌套联接,其中包含嵌套联接表上的计数

Sql Rails嵌套联接,其中包含嵌套联接表上的计数,sql,ruby-on-rails-3,activerecord,arel,Sql,Ruby On Rails 3,Activerecord,Arel,我在rails 3应用程序中设置了以下模型: class User << AR::Base has_many :groups end class Group << AR::Base belongs_to :user has_many :memberships has_many :contacts, :through => :memberships end class Membership << AR::Base belongs_t

我在rails 3应用程序中设置了以下模型:

class User << AR::Base
  has_many :groups
end

class Group << AR::Base
  belongs_to :user
  has_many :memberships
  has_many :contacts, :through => :memberships
end

class Membership << AR::Base
  belongs_to :group
  belongs_to :contact
end

class Contact << AR::Base
  has_many :memberships
  has_many :groups, :through => :memberships
end
我尝试过做以下类似的事情,但没有效果:

User.joins(:groups => :contacts).where('count(contacts.id) > ?', x)
另外,如果联系人能够清晰可见,那也很好


任何方向正确的点都会很棒,sql不是我的强项之一,而且我今天似乎已经脑死亡。

经过一段时间的努力,我得到了一些帮助,并且能够像这样完成我的查询

User.select("users.*, count(distinct contacts.id) as num").joins(:groups => :contacts).group('users.id').having('num > 10')
User.select("users.*, count(distinct contacts.id) as num").joins(:groups => :contacts).group('users.id').having('num > 10')