집 >데이터 베이스 >MySQL 튜토리얼 >Laravel Eloquent에서 GroupBy를 사용하여 합계 집계를 효율적으로 수행하는 방법은 무엇입니까?
소개:
Laravel의 Eloquent ORM은 데이터 베이스. 대규모 데이터 세트로 작업할 때 데이터를 그룹화하고 합계와 같은 집계를 수행해야 합니다.
문제 설명:
제공된 코드는 users_editor_id로 그룹화된 no_of_pages의 합계를 계산하려고 시도합니다. Eloquent의 sum() 및 groupBy() 메소드를 사용합니다. 그러나 이 접근 방식은 groupBy()가 적용되기 전에 sum()이 쿼리를 실행하고 결과를 반환한다는 사실로 인해 실패합니다.
해결책:
해결 방법 이 문제에서는 groupBy() 및 selectRaw() 메서드를 조합하여 사용할 수 있습니다. 업데이트된 솔루션은 다음과 같습니다.
Document::groupBy('users_editor_id') ->selectRaw('sum(no_of_pages) as sum, users_editor_id') ->pluck('sum','users_editor_id');
설명:
대안 해결 방법:
또 다른 접근 방식은 get()과 함께 selectRaw() 메서드를 사용하여 의사 ORM 모델 모음을 반환하는 것입니다.
Document::groupBy('users_editor_id') ->selectRaw('*, sum(no_of_pages) as sum') ->get();
이 메서드는 합계를 더합니다. 열을 각 결과 모델에 추가하여 일반 모델처럼 액세스할 수 있습니다.
결론:
groupBy(), selectRaw(), pluck() 메소드를 활용하면 Laravel Eloquent에서 그룹화를 통해 합계 집계를 효율적으로 수행할 수 있습니다. . 이러한 기술을 통해 대규모 데이터 세트를 효과적으로 처리하고 데이터에서 귀중한 통찰력을 얻을 수 있습니다.
위 내용은 Laravel Eloquent에서 GroupBy를 사용하여 합계 집계를 효율적으로 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!