Laravel的collection提供了好用的groupby功能,可以做到像在sql中的group by sum, count等等:
如果是model select完的資料想要再做到類似在sql中group by的功能,就可以用這種方式,很方便。後記:
1. 若要做到類似group by concat的功能,可使用$group->pluck('col_name')。
2. ->collapse(); 是把分開的array結合成一個:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] => [1, 2, 3, 4, 5, 6, 7, 8, 9]
如果是分開的array data想要group操作,可以把array變成一個再做group操作。
3. ->values()->all();
group by後的結果, 預設會把group的key帶上去, 可使用->values()->all()去掉group key。

4. group by with Multiple Columns
$groups = collect($my_array)->groupBy(function ($item, $key) {
return $item['A'].$item['B'].$item['C'].$item['D'];
});
5. group by all
->groupBy('employee_id')->all();
原本:

變為:

6. group by and filter row by min column
7. group by then sort by column
本筆記參考:
1. https://stackoverflow.com/questions/62550381/laravel-collection-with-groupby-count-and-sum
2. https://laravel.tw/docs/5.2/collections
3. https://hdtuto.com/article/laravel-group-collection-by-column-example



















