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);