Laravel API, MySQL 查询,获取同一天的平均数据
Laravel API, MySQL Query, Get average data in same date
我的table是关于体重的。例如,
(February 10, 2020) = 60kg
(February 11, 2020) = 62kg
(February 11, 2020) = 63kg
(February 11, 2020) = 64kg
(February 12, 2020) = 65kg
Json 应该 return,
{
"weight": 60,
"created_at": "2020-02-10"
},
{
"weight": 63,
"created_at": "2020-02-11"
},
{
"weight": 65,
"created_at": "2020-02-12"
}
带分页。
这是我没有平均值的现有代码。
public function weightChart(Request $request, $id)
{
$data = WeightHistory::where('user_id', $id)->orderBy('created_at', 'DESC')->paginate(7);
return WeightChartResource::collection($data);
}
Change your query
$data = WeightHistory::where('user_id', $id)->orderBy('created_at', 'DESC')->paginate(7);
To
$data = WeightHistory::where('user_id', $id)->select('created_at', DB::raw('AVG(weight) as weight'))->groupBy('created_at')->orderBy('created_at', 'DESC')->paginate(7);
我的table是关于体重的。例如,
(February 10, 2020) = 60kg
(February 11, 2020) = 62kg
(February 11, 2020) = 63kg
(February 11, 2020) = 64kg
(February 12, 2020) = 65kg
Json 应该 return,
{
"weight": 60,
"created_at": "2020-02-10"
},
{
"weight": 63,
"created_at": "2020-02-11"
},
{
"weight": 65,
"created_at": "2020-02-12"
}
带分页。
这是我没有平均值的现有代码。
public function weightChart(Request $request, $id)
{
$data = WeightHistory::where('user_id', $id)->orderBy('created_at', 'DESC')->paginate(7);
return WeightChartResource::collection($data);
}
Change your query
$data = WeightHistory::where('user_id', $id)->orderBy('created_at', 'DESC')->paginate(7);
To
$data = WeightHistory::where('user_id', $id)->select('created_at', DB::raw('AVG(weight) as weight'))->groupBy('created_at')->orderBy('created_at', 'DESC')->paginate(7);