Maison > base de données > tutoriel mysql > Comment exécuter efficacement des requêtes SUM et GROUP BY éloquentes dans Laravel ?

Comment exécuter efficacement des requêtes SUM et GROUP BY éloquentes dans Laravel ?

Patricia Arquette
Libérer: 2025-01-03 04:46:39
original
497 Les gens l'ont consulté

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

Somme éloquente et requêtes de groupe par dans Laravel

Dans Laravel, l'ORM éloquent fournit un moyen pratique d'interagir avec la base de données. Cependant, lorsque vous travaillez avec de grands ensembles de données, il peut devenir nécessaire d'effectuer des requêtes complexes combinant des fonctions d'agrégation telles que SUM avec des opérations de regroupement telles que GROUP BY.

Le défi

Un Le scénario courant où cette question se pose est lorsque vous souhaitez obtenir la somme d'un champ particulier tout en regroupant les résultats par un autre champ. Par exemple, vous souhaiterez peut-être connaître le nombre total de pages écrites par chaque éditeur dans une base de données de documents.

Solution 1 : Utiliser selectRaw et pluck

Pour y parvenir , vous pouvez d'abord regrouper les résultats par champ souhaité à l'aide de la méthode groupBy. Ensuite, utilisez la méthode selectRaw pour définir le calcul, et enfin utilisez la méthode pluck pour créer un tableau de la somme pour chaque groupe :

Document::groupBy('users_editor_id')
   ->selectRaw('SUM(no_of_pages) AS sum, users_editor_id')
   ->pluck('sum', 'users_editor_id');
Copier après la connexion

Solution 2 : Utiliser selectRaw et get

Vous pouvez également obtenir un résultat similaire en utilisant les méthodes selectRaw et get. Cependant, cette approche renverra une collection de pseudo-modèles qui incluent la somme calculée comme champ supplémentaire :

Document::groupBy('users_editor_id')
   ->selectRaw('*, SUM(no_of_pages) AS sum')
   ->get();
Copier après la connexion

En tirant parti de ces techniques, vous pouvez effectuer efficacement des opérations d'agrégation et de regroupement complexes dans vos requêtes Eloquent pour obtenez des informations précieuses à partir de votre base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal