0 postgresql activerecord ruby-on-rails ruby-on-rails-3
我的 Postgresql 数据库具有以下结构:
TABLE Orders
id (string)
userId (string)
prodId (string)
value (integer)
Run Code Online (Sandbox Code Playgroud)
这是一个数据示例:
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
Run Code Online (Sandbox Code Playgroud)
我想从 ActiveRecord 执行一个查询,对特定的所有值进行求和userId,因此 (a@a.aaa) 的查询将返回如下所示的 LIST:
prod1 1
prod2 9
Run Code Online (Sandbox Code Playgroud)
我的第一个方法是这个,但它不起作用:
orderList = Orders.select("SUM(orders.amount) AS num_prods").where((:userId => HERE_USER_ID).group(:prodId)
Run Code Online (Sandbox Code Playgroud)
编辑:由于反馈而重新措辞
Order.where(userId: id).group(:prodId).sum(:value) # replace `:id` with your value
Run Code Online (Sandbox Code Playgroud)
这应该给你一个哈希值,就像这样
{1=>10, 2=>20, 5=>20}
Run Code Online (Sandbox Code Playgroud)
键1,2,5代表产品 ID,值10,20,20代表总和值。
| 归档时间: |
|
| 查看次数: |
3716 次 |
| 最近记录: |