2016-07-21 22 views
0

時間ごとにグループ化するクエリが必要です。その後、data.iには名前の時間のデータベースに列があり、時刻の値は13:12:43と同じです。私は時間単位で結果を必要とします。与えられたクエリを試していますが、このクエリはすべてのユニットの合計を返します。しかし、私は[{hour:1、unit:0.2232} 、{時間:2、単位:0.3232} ..コントローラあなたからlaravelのEloquentのグループでグループ化

$response = PowerConsumption::groupBY('time') 
       ->selectRaw('round(sum(unit),4) as yAxis') 
       ->where(['device_id' => 2]) 
        ->where('date',Carbon::now()->ToDateString) 
       ->orderBy('time')->get(); 

答えて

0

]のよう:あなたは、あなたの中で、結果のforeachを単に行うことができます

$response = PowerConsumption::selectRaw('HOUR(time) as hour') 
       ->where(['device_id' => 2]) 
        ->where('date',Carbon::now()->ToDateString) 
       ->orderBy('time')->get()->groupBy('hour'); 
$results = []; 
foreach ($response as $hour => $value) { 
     $results[] = ['hour'=> $hour, 'unit' => round($value->sum('unit'), 4)] 
} 

あなたがAjaxを使用していない場合は表示

+0

それはすべてのユニットの戻り値です。 – User101

+0

@ User101、最初にそれを1時間ごとにグループ化し、合計でそのグループのデータを合計する必要があります –

関連する問題