Laravel 对某一列进行筛选然后求和sum()的例子

1. 概述

在使用 Laravel 进行开发时,有时需要对某一列进行筛选,并对该列求和。此时,可以使用 Laravel 提供的 `sum()` 函数来轻松实现。

2. 使用 sum() 函数对某一列进行求和

`sum()` 函数的使用非常简单,只需要指定要求和的列名即可。例如,对 `orders` 表中的 `price` 列进行求和,可以使用如下代码:

$totalPrice = DB::table('orders')->sum('price');

这将返回 `orders` 表中所有订单的价格总和。

3. 对特定条件下的某一列进行筛选并求和

有时,需要对特定条件下的某一列进行筛选,并对该列求和。例如,需要计算 `orders` 表中所有已完成订单的价格总和。这可以使用如下代码实现:

$totalPrice = DB::table('orders')->where('status', '=', 'complete')->sum('price');

这将返回 `orders` 表中所有已完成订单的价格总和。

4. 使用 groupBy() 函数对多个条件下的某一列进行分组并求和

在某些情况下,需要对多个条件下的某一列进行分组,并对每组计算其价格总和。这可以使用 `groupBy()` 函数来实现。例如,需要计算 `orders` 表中每个客户的总订单价格,可以使用如下代码:

$orderTotals = DB::table('orders')

->select(DB::raw('customer_id, sum(price) as total_price'))

->groupBy('customer_id')

->get();

此代码将返回一个包含订单总价的数组,每个元素都包含一个客户 ID 和一个总价,如下所示:

Array

(

[0] => stdClass Object

(

[customer_id] => 1

[total_price] => 500

)

[1] => stdClass Object

(

[customer_id] => 2

[total_price] => 750

)

[2] => stdClass Object

(

[customer_id] => 3

[total_price] => 250

)

)

5. 总结

使用 Laravel 的 `sum()` 函数可以轻松实现对某一列进行求和的功能。同时,使用 `where()` 函数可以对特定条件下的某一列进行筛选并求和,使用 `groupBy()` 函数可以对多个条件下的某一列进行分组并求和。这些函数在 Laravel 中的使用非常简单,只需要指定要操作的表、列和条件即可。

后端开发标签