ホームページ >データベース >mysql チュートリアル >Laravel EloquentでGroupByを使用して合計集計を効率的に実行する方法は?
はじめに:
Laravel の Eloquent ORM は、データベース。大規模なデータセットを操作する場合、データをグループ化し、合計などの集計を実行する必要があります。
問題ステートメント:
提供されたコードは、users_editor_id によってグループ化された no_of_pages の合計を計算しようとします。 Eloquent の sum() メソッドと groupBy() メソッドを使用します。ただし、このアプローチは、groupBy() が適用される前に sum() がクエリを実行して結果を返すという事実により失敗します。
解決策:
解決するにはこの問題では、groupBy() メソッドと selectRaw() メソッドを組み合わせて使用できます。更新されたソリューションは次のとおりです:
Document::groupBy('users_editor_id') ->selectRaw('sum(no_of_pages) as sum, users_editor_id') ->pluck('sum','users_editor_id');
説明:
代替解決策:
もう 1 つのアプローチは、selectRaw() メソッドを get() とともに使用して、疑似 ORM モデルのコレクションを返すことです。
Document::groupBy('users_editor_id') ->selectRaw('*, sum(no_of_pages) as sum') ->get();
このメソッドは合計を加算します。結果の各モデルに列を追加し、通常のモデルと同様にアクセスできるようにします。 property.
結論:
groupBy()、selectRaw()、および pluck() メソッドを利用することで、Laravel Eloquent でグループ化を使用した合計集計を効率的に実行できます。 。これらの手法により、大規模なデータセットを効果的に処理し、データから貴重な洞察を取得できるようになります。
以上がLaravel EloquentでGroupByを使用して合計集計を効率的に実行する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。