在Rails 5中,可以使用group
和sum
方法来实现分组并求和的操作。
首先,假设我们有一个名为Order
的模型,其中包含amount
字段表示订单金额。我们想要按照订单的状态进行分组,并计算每个状态下订单金额的总和。
可以使用以下代码实现:
orders = Order.group(:status).sum(:amount)
上述代码中,group(:status)
表示按照status
字段进行分组,sum(:amount)
表示对每个分组内的amount
字段进行求和。
这将返回一个哈希表,其中键是状态值,值是对应状态下订单金额的总和。
例如,如果我们有以下订单数据:
| id | amount | status | |----|--------|--------| | 1 | 100 | paid | | 2 | 200 | paid | | 3 | 150 | shipped| | 4 | 300 | shipped|
运行以上代码后,将得到以下结果:
{
"paid" => 300,
"shipped" => 450
}
这表示在paid
状态下订单金额总和为300,而在shipped
状态下订单金额总和为450。
推荐的腾讯云相关产品:腾讯云数据库MySQL、腾讯云云服务器CVM
领取专属 10元无门槛券
手把手带您无忧上云