Ruby on rails 按ID分组并对行求和的ActiveRecord查询

Ruby on rails 按ID分组并对行求和的ActiveRecord查询,ruby-on-rails,ruby-on-rails-3,postgresql,activerecord,Ruby On Rails,Ruby On Rails 3,Postgresql,Activerecord,我的Postgresql数据库具有以下结构: TABLE Orders id (string) userId (string) prodId (string) value (integer) 这是一个数据示例: id userId prodId value 1 a@a.aaa prod1 5 2 b@b.bbb prod1 -1 3 a@a.aaa prod1 -4 4 a

我的Postgresql数据库具有以下结构:

TABLE Orders
id (string)
userId (string)
prodId (string)
value (integer)
这是一个数据示例:

id      userId      prodId    value
1       a@a.aaa     prod1     5
2       b@b.bbb     prod1     -1
3       a@a.aaa     prod1     -4
4       a@a.aaa     prod2     9
我想从ActiveRecord执行一个查询,对特定的
用户ID
的所有值求和,因此(a@a.aaa)将返回如下列表:

prod1    1
prod2    9
我的第一种方法是这个,但它不起作用:

orderList = Orders.select("SUM(orders.amount) AS num_prods").where((:userId => HERE_USER_ID).group(:prodId)
编辑:由于反馈而重新措辞

Order.where(userId: id).group(:prodId).sum(:value) # replace `:id` with your value
这应该给你一个杂凑,就像这样

{1=>10, 2=>20, 5=>20}
1,2,5
表示产品id,值
10,20,20
表示总和值

这应该给你一个杂凑,就像这样

{1=>10, 2=>20, 5=>20}
1,2,5
表示产品id,值
10,20,20
表示总和值

这应该给你一个杂凑,就像这样

{1=>10, 2=>20, 5=>20}
1,2,5
表示产品id,值
10,20,20
表示总和值

这应该给你一个杂凑,就像这样

{1=>10, 2=>20, 5=>20}

1,2,5
表示产品id,值
10,20,20
表示总和值。

1。您可能想要
订单
,而不是
订单
。2.您的用户列名为
userId
还是
username
?您在示例数据和ActiveRecord查询中指示了不同的值。3.你有一个额外的
在你的
where
条件上。4.当你说“不起作用”时,发生了什么?谢谢,实际上我表达的不正确。请找到新的查询是您的模型名为
Order
还是
Orders
?是它的第一行
类Order
?模型名为Orders,数据库表名为Orders。我知道我应该将其更改为单数。1.您可能想要
Order
而不是
Orders
。2.您的用户列名为
userId
还是
username
?您在示例数据和ActiveRecord查询中指示了不同的值。3.您在
where
条件上有一个额外的
)。4.当您说“不起作用”时,发生了什么?谢谢,实际上我表达的不正确。请找到新的查询是您的模型名为
Order
还是
Orders
?是它的第一行
类Order
?模型名为Orders,数据库表名为Orders。我知道我应该将其更改为单数。1.您可能想要
Order
而不是
Orders
。2.您的用户列名为
userId
还是
username
?您在示例数据和ActiveRecord查询中指示了不同的值。3.您在
where
条件上有一个额外的
)。4.当您说“不起作用”时,发生了什么?谢谢,实际上我表达的不正确。请找到新的查询是您的模型名为
Order
还是
Orders
?是它的第一行
类Order
?模型名为Orders,数据库表名为Orders。我知道我应该将其更改为单数。1.您可能想要
Order
而不是
Orders
。2.您的用户列名为
userId
还是
username
?您在示例数据和ActiveRecord查询中指示了不同的值。3.您在
where
条件上有一个额外的
)。4.当您说“不起作用”时,发生了什么?谢谢,实际上我表达的不正确。请查找新的查询是您的模型名为
Order
还是
Orders
?是它的第一行
类Order
?模型名为Orders,数据库表名为Orders。我知道我应该将其更改为单数。