Laravel Eloquent: GroupBy を使用した合計のコツをマスターする
Laravel Eloquent を使用する場合、合計を計算する必要がある場合があります。結果を別の列でグループ化しながら、特定の列の結果をグループ化します。ただし、sum() の後に groupBy() を続けるという従来のアプローチを使用すると、エラーが発生する可能性があります。これは、sum() がクエリを即座に実行し、groupBy() を適用するオブジェクトが残らないためです。
答え: グループ化と合計のための熟練したソリューション
この問題の解決策は、次のコード構造を使用することです:
Document::groupBy('users_editor_id') ->selectRaw('sum(no_of_pages) as sum, users_editor_id') ->pluck('sum','users_editor_id');
このコード groupBy() 「users_editor_id」列では、selectRaw() を使用して合計計算を指定します。最後に、pluck() は、合計と users_editor_id` の値を配列に抽出します。
または、次のアプローチを使用することもできます。
Document::groupBy('users_editor_id') ->selectRaw('*, sum(no_of_pages) as sum') ->get();
このメソッドは、追加のドキュメント モデルのコレクションを返します。 sum フィールド。グループ化されたもののわずかに異なる表現を提供します。 data.
結論
groupBy() と sum() の相互作用を理解し、selectRaw() メソッドを活用することで、結果をグループ化しながら合計を簡単に計算できます。 Laravel Eloquent は、データ分析機能を強化します。
以上がLaravel EloquentでSumとGroupByを正しく行う方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。