+---------+--------+---------+---------+
| date | type_a | type_b | type_zzz|
+---------+--------+---------+---------+
|01-01-18 | 12 | 10 | 1 |
|02-01-18 | 2 | 5 | 1 |
|03-01-18 | 7 | 2 | 2 |
|01-02-18 | 13 | 6 | 55 |
|02-02-18 | 22 | 33 | 5 |
+---------+--------+---------+---------+
嗨,
在上面的例子中,我想知道是否可以在Laravel中获取结果时对groupBy month和sum每个列进行求和(表是动态的,因此没有模型,而且有些表没有列'type_a'其他don'有'type_zzz'等...) .
我想从上面得到的是这样的:
"01" =>
'type_a' : '21',
'type_b' : '17',
'type_zzz': '4'
"02" =>
'type_a' : '35',
'type_b' : '39',
'type_zzz': '60'
我正在使用以下代码按月分组,但我无法找到按每列返回总和的解决方案:
DB::table($id)->get()->groupBy(function($date) {
return Carbon::parse($date->repdate)->format('m');;
});
1 回答
如果我正确理解您的问题,您可以使用SQL查询对值进行分组和求和:
或者,如果您不想在每个查询中指定列名,则可以在集合中使用groupBy,array_column和array_sum: