Maison > base de données > tutoriel mysql > Comment additionner correctement et GroupBy dans Laravel Eloquent ?

Comment additionner correctement et GroupBy dans Laravel Eloquent ?

Linda Hamilton
Libérer: 2024-12-29 22:55:14
original
610 Les gens l'ont consulté

How to Correctly Sum and GroupBy in Laravel Eloquent?

Laravel Eloquent : maîtriser l'art de la somme avec GroupBy

Lorsque vous travaillez avec Laravel Eloquent, il y a des moments où vous devez calculer la somme d'une colonne spécifique tout en regroupant les résultats par une autre colonne. Cependant, l’utilisation de l’approche conventionnelle sum() suivie de groupBy() peut conduire à une erreur. En effet, sum() exécute la requête immédiatement, ne laissant aucun objet sur lequel appliquer groupBy().

La réponse : une solution compétente pour le regroupement et la sommation

À aborder ce problème, la solution est d'utiliser la structure de code suivante :

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

Ce code groupBy() sur le 'users_editor_id' colonne, puis utilise selectRaw() pour spécifier le calcul de la somme. Enfin, pluck() extrait les valeurs sum et users_editor_id` dans un tableau.

Vous pouvez également utiliser cette approche :

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

Cette méthode renvoie une collection de modèles de document avec un champ de somme, fournissant une représentation légèrement différente du groupe data.

Conclusion

En comprenant l'interaction entre groupBy() et sum() et en tirant parti de la méthode selectRaw(), vous pouvez facilement calculer des sommes tout en regroupant les résultats dans Laravel Eloquent, renforçant vos capacités d'analyse 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