【发布时间】:2017-01-04 19:42:37
【问题描述】:
我的 Person 类将关联 0 个或多个小部件
class Person < ActiveRecord::Base
has_many :widgets
end
我想列出拥有 X 小部件的人数,即:
Num of widgets | Num of people
0 | 10
1 | 34
2 | 0
...
100 | 20
(也就是说 34 人有 1 个小部件,等等)。
这是我迄今为止的最大努力:
Person.joins(:widgets).group('people.id').select('people.id, count(widget_id) as widget_count').group('widget_count')
但我收到了
Mysql2::Error: Can't group on 'widget_count'
【问题讨论】:
-
您可以看到通过在语句后面添加 .to_sql 生成的 sql 并从中学到很多,或者在数据库客户端中尝试该 sql
标签: sql ruby-on-rails ruby rails-activerecord