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() 将 sum 和 users_editor_id` 值提取到一个数组中。
或者,您可以使用以下方法:
Document::groupBy('users_editor_id') ->selectRaw('*, sum(no_of_pages) as sum') ->get();
此方法返回带有附加信息的文档模型集合sum 字段,提供了稍微不同的分组表示
结论
通过理解 groupBy() 和 sum() 之间的相互作用并利用 selectRaw() 方法,您可以轻松计算总和,同时对结果进行分组Laravel Eloquent,赋能你的数据分析能力。
以上是如何在 Laravel Eloquent 中正确进行 Sum 和 GroupBy?的详细内容。更多信息请关注PHP中文网其他相关文章!