Laravel開発では、データベースの列をフィルタリングして合計する必要があることがよくあります。幸いなことに、Laravelは非常に簡潔な `sum()`機能を提供し、この要件を迅速に達成するのに役立ちます。
`sum()`関数は、指定された列のすべてのデータを合計するために使用されます。たとえば、「注文」テーブルの「価格」列を合計する場合は、次のコードを使用できます。
$totalPrice = DB::table('orders')->sum('price');
このコードは、「注文」テーブルのすべての注文の合計価格を返します。
時には、特定の特定の条件下で列を合計する前にフィルタリングする必要がある場合があります。たとえば、完了したすべての注文の合計価格を計算する場合は、次のコードを使用できます。
$totalPrice = DB::table('orders')
->where('status', '=', 'complete')
->sum('price');
このコードは、「注文」表に記入されたすべての注文の価格の合計を返します。
場合によっては、複数の条件下で列をグループ化し、各グループのデータを合計する必要がある場合があります。たとえば、各顧客の合計注文価格を計算する場合は、次のコードを使用できます。
$orderTotals = DB::table('orders')
->select(DB::raw('customer_id, sum(price) as total_price'))
->groupBy('customer_id')
->get();
上記のコードは、各要素に顧客IDとその顧客の合計注文額が含まれる配列を返します。
上記のコードを実行した後、返されたデータは次のようになります。
Array
(
[0] => stdClass
(
[customer_id] => 1
[total_price] => 500
)
[1] => stdClass
(
[customer_id] => 2
[total_price] => 750
)
[2] => stdClass
(
[customer_id] => 3
[total_price] => 250
)
)
Laravelの `sum()`関数により、列を簡単に合計することができます。さらに、「where()」関数と組み合わせると、特定の条件下で合計を実行できます。 `groupby()`関数を介して、グループ化後に合計関数を実装できます。これらの一般的に使用されるデータベースクエリテクニックを習得すると、開発効率が大幅に向上する可能性があります。