使用ActiveRecord按列分组

时间:2015-12-03 14:20:21

标签: ruby-on-rails ruby activerecord

我在RoR中获得了以下模型:

rails g model MyTable col1:string col2:integer

然后我添加了以下数据:

col1|col2 
a__ |7__ 
a__ |3__ 
b__ |5__ 
b__ |2__ 

我想按col1分组,得到每组的col2之和。我做了以下事情:

data = MyTable.all
data2 = data.select("col1, SUM(col2) as col2_all").group("col1")

第二行提供以下SQL:

SELECT col1, SUM(col2) as col2_all FROM "my_tables" GROUP BY "my_tables"."col1"

但我得到的输出看起来并不正确:

<ActiveRecord::Relation [#<MyTable id: nil, col1: "a">, #<MyTable id: nil, col1: "b">]>

我似乎没有像我预期的那样得到col2_all。

我做错了什么?

2 个答案:

答案 0 :(得分:2)

MyTable.group(:col1).sum(:col2)

答案 1 :(得分:1)

我非常确定,如果col2_all不是MyTable模型的属性,那么您将无法看到它。

这有用吗?

MyModel.group(:col1).sum(:col2)