我有一个交易模型,它有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)。我怎样才能做到这一点 ?
答案 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)
应该为您提供所需的结果。