添加具有相似值的字段

时间:2013-04-10 09:11:04

标签: ruby-on-rails ruby ruby-on-rails-3.2

我有一个交易模型,它有2个字段,number_of_share和price_per_share。

我想在饼图中展示它,为此我必须找到与用户关联的所有交易对象,然后添加具有相同price_per_share的所有交易对象,并添加他们的number_of_shared。

示例: -

trading id: 1, price_per_share: 10, number_of_shares: 20
trading id: 2, price_per_share: 10, number_of_shares: 12
trading id: 3, price_per_share: 12, number_of_shares: 10

现在我想添加所有具有相似值的price_per_share(在这种情况下为10)。我怎样才能做到这一点 ?

2 个答案:

答案 0 :(得分:3)

这应该有效:

Trading.group(:price_per_share).sum(:number_of_shares)
# => {10=>32, 12=>10}

SQL将类似于:

SELECT SUM(`tradings`.`number_of_shares`) AS sum_number_of_shares, price_per_share AS price_per_share FROM `tradings` GROUP BY `tradings`.`price_per_share`

答案 1 :(得分:0)

希望我明白这一点,但是:

Trading.where(:price_per_share => 10).sum(:number_of_shares)

应该为您提供所需的结果。