ホームページ > データベース > mysql チュートリアル > Laravelで雄弁なSUMクエリとGROUP BYクエリを効率的に実行するにはどうすればよいですか?

Laravelで雄弁なSUMクエリとGROUP BYクエリを効率的に実行するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-03 04:46:39
オリジナル
490 人が閲覧しました

How to Efficiently Perform Eloquent SUM and GROUP BY Queries in Laravel?

Laravel の Eloquent Sum と Group By クエリ

Laravel では、Eloquent ORM がデータベースと対話する便利な方法を提供します。ただし、大規模なデータセットを操作する場合は、SUM などの集計関数と GROUP BY などのグループ化操作を組み合わせた複雑なクエリを実行することが必要になる場合があります。

課題

1この疑問が生じる一般的なシナリオは、結果を別のフィールドごとにグループ化しながら、特定のフィールドの合計を取得したい場合です。たとえば、ドキュメント データベース内の各編集者によって書き込まれた合計ページ数を確認したい場合があります。

解決策 1: selectRaw と pluck を使用する

これを実現するには, まず、groupBy メソッドを使用して、目的のフィールドごとに結果をグループ化します。次に、selectRaw メソッドを使用して計算を定義し、最後に pluck メソッドを使用して各グループの合計の配列を作成します。

Document::groupBy('users_editor_id')
   ->selectRaw('SUM(no_of_pages) AS sum, users_editor_id')
   ->pluck('sum', 'users_editor_id');
ログイン後にコピー

解決策 2: selectRaw と get を使用する

また、selectRaw メソッドと get メソッドを使用して同様の結果を得ることができます。ただし、このアプローチでは、追加フィールドとして計算された合計を含む疑似モデルのコレクションが返されます。

Document::groupBy('users_editor_id')
   ->selectRaw('*, SUM(no_of_pages) AS sum')
   ->get();
ログイン後にコピー

これらのテクニックを活用することで、Eloquent クエリで複雑な集計およびグループ化操作を効率的に実行できます。データベースから貴重な洞察を得ることができます。

以上がLaravelで雄弁なSUMクエリとGROUP BYクエリを効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート