2021-05-26|閱讀時間 ‧ 約 3 分鐘

Laravel collection group by sum, concat

    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
    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.