【发布时间】:2021-07-17 01:57:36
【问题描述】:
我有一个 SQL 表,其中包含一些数据,如下图所示。我想用那个月数计算每月的总值。如何处理 Laravel DB 查询?实际上,我希望将结果作为数组显示在饼图中。如何获取包含每月总和和月份数字的数组?
【问题讨论】:
我有一个 SQL 表,其中包含一些数据,如下图所示。我想用那个月数计算每月的总值。如何处理 Laravel DB 查询?实际上,我希望将结果作为数组显示在饼图中。如何获取包含每月总和和月份数字的数组?
【问题讨论】:
TableName::select(DB::raw("DATE_FORMAT(date, '%Y-%m') as month"), DB::raw("sum(value) as value")
->groupBy("month")->get();
【讨论】:
我更喜欢使用集合。如果您将日期列转换为模型中的日期,您可以这样做:
$items = Item::whereYear('date', '2021')->get()->groupBy(function ($item) {
return $item->date->month;
})->map(function ($item) {
return $item->sum('value');
});
return $items;
如果你更喜欢使用 DB 外观
$items = \Illuminate\Support\Facades\DB::table('items')->get()->groupBy(function ($item) {
return \Illuminate\Support\Carbon::parse($item->date)->month;
})->map(function ($item) {
return $item->sum('value');
});
return $items;
无论如何,你最终都会得到一个集合。
【讨论】: