按嵌套的belongs_to关联分组

时间:2016-09-26 17:03:05

标签: sql ruby-on-rails ruby-on-rails-4 activerecord

我正在尝试可视化QueryLeads Event的分布。因此,计算每个事件的查询符,然后根据查询符的数量(最好是可设置的波段)对事件进行分组。我认为我可以通过以下关系来做到这一点:

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'),这个级别太低了。

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

1 个答案:

答案 0 :(得分:0)

此查询应该适合您。

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