我希望标题是正确的。我需要汇总所有货币,即所有货币,等等,但不要将所有货币合并为一个总和。
基本上,如果我有2x $4
和3x £10
,则会$8
和£30
我有Income
模型,其属性为:currency
(字符串)和:amount
(浮动):
我有什么作品,但我觉得它可以重构一下:
Income.all.group(:currency).count.map do |k,v|
Income.where(currency: k).map.sum(&:amount)
end
这给了我一个总数。 OK-ISH。我需要更好的格式,例如哈希:
{
USD => 8.0,
GBP => 30.0
}
可能?请问怎么样?
答案 0 :(得分:2)
我认为以下情况可以:
Income.group(:currency).sum(:amount)
SQL看起来像:
SELECT SUM(income.amount) AS sum_amount, currency AS currency
FROM income
GROUP BY income.currency