2016-09-26 165 views
0

我试图想像QueryLeadsEvent的分布。因此,计数每个事件的queryleads,然后根据queryleads的数量(最好是可设置的频段)对事件进行分组。我认为我可以做到这一点有以下关系:通过嵌套belongs_to关联组

Event 
has_many :queries 
has_many :query_leads, through: :queries 

Query 
belongs_to :event 
has_many :query_leads 

QueryLead 
belongs_to :query 

我可以执行联接:QueryLead.joins(:query => :event)但后来一旦我开始分组看起来我不能够小组活动的ID。 QueryLead.joins(:query => :event).group('query_leads.id','query_leads.query.events_id').count返回PG::UndefinedTable Error - missing FROM-clause entry for table "query"

我能做的最好的似乎是:.group('query_leads.id', 'query_leads.query_id'),这是一个级别太低。

我在做什么错误/你会如何解决这个问题?

回答

0

此查询应该适用于您。

Event.joins(queries: :query_leads).select('events.id, COUNT(query_leads.id) as count').group('events.id') 
相关问题