按计数获得一组的总和

Rem*_*s07 0 ruby-on-rails ruby-on-rails-4 rails-activerecord

所以请想象我有这个sql表:用户:

id | 名字| 市

1 | name1 | city1

2 | name2 | 城2

3 | name3 | city1

4 | name4 | 请分享帮助

所以直到现在我在我的控制器中执行此操作:

@cities = User.group(:city).count 
Run Code Online (Sandbox Code Playgroud)

并在我看来做这样的事情:

<%= "#{city} (#{count})" %> 
Run Code Online (Sandbox Code Playgroud)

我懂了 :

city1(2)

city2(1)

city3(1)

我现在需要的是添加一行,将每个城市的数量相加如下:

全部(4)

我不想为此创建一个新的SQL查询,因为我非常确定有更简洁的方法来执行此操作.

我希望我很清楚,谢谢!

blu*_*llu 6

除非您自己制作一些奇特的SQL,否则您将无法在单个SQL查询中执行此操作.如果性能不是问题,我会在控制器上聚合:

counts = User.group(:city).count
total = counts.values.sum
Run Code Online (Sandbox Code Playgroud)