首頁 > 資料庫 > mysql教程 > 如何在 Laravel Eloquent 中使用 GroupBy 正確計算 Sum?

如何在 Laravel Eloquent 中使用 GroupBy 正確計算 Sum?

Barbara Streisand
發布: 2024-12-30 00:11:39
原創
543 人瀏覽過

How to Correctly Calculate Sum with GroupBy in Laravel Eloquent?

在 Laravel Eloquent 中使用 GroupBy 計算 Sum

在 Laravel 中,Eloquent ORM 提供了一種與資料庫互動的強大方式。一項常見任務是在按特定欄位分組時計算列的總和。雖然使用 sum() 方法看起來很簡單,但由於執行順序,它可能會導致錯誤。

不正確的方法

$this->data['no_of_pages'] = Document::sum('no_of_pages')
                            ->groupBy('users_editor_id'); // Call to undefined method
登入後複製

在上面的程式碼中,groupBy() 方法在sum() 方法之後調用,這會導致錯誤,因為sum () 在groupBy()先前執行查詢並傳回結果

正確解

要正確計算groupBy 的總和,請使用以下方法:

方法1 (建議)

Document::groupBy('users_editor_id')
    ->selectRaw('sum(no_of_pages) as sum, users_editor_id')
    ->pluck('sum', 'users_editor_id');
登入後複製

此方法使用selectRaw() 方法建立一個計算總和(sum)的別名。然後,pluck() 方法提取 sum 和 users_editor_id 字段,提供關聯數組結果。

方法 2

Document::groupBy('users_editor_id')
    ->selectRaw('*, sum(no_of_pages) as sum')
    ->get();
登入後複製

此方法建立一個偽 ORM透過向每個文件模型添加求和欄位來得到結果。然而,它不太理想,因為結果不是真正的 ORM 集合。

以上是如何在 Laravel Eloquent 中使用 GroupBy 正確計算 Sum?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板