2013-04-10 62 views
0

我有一个交易模型,它有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

什么是预期输出(代码),以及你是怎么设法得到它? – 2013-04-10 09:13:47

+0

预计产量是32股@ 10和10股@ 12 – 2013-04-10 09:17:18

回答

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` 
0

希望我的理解是正确的,但:

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

应该给你你正在寻找的结果。

+0

我想添加所有类似的price_per_share,我不知道price_per_share的价值 – 2013-04-10 09:16:44

+0

您能定义“类似”吗?正如你所说,你首先想要得到一个可能的值列表,就像你用“distinct”或“group_by”得到的一样? – 2013-04-10 09:23:23

+0

这是我想要32股@ 10和10股@ 12的输出 – 2013-04-10 09:24:46