2016-05-03 32 views
0

私は2つの列を持っています。 1つは日時(imeromina_metrisis)で、もう1つは整数(apotelesma)です。私がしようとしているのは、私がグラフに送ることができるように、毎日の平均整数を得ることです。どのように私はこれを行うことができますか考えていますか?Laravel Eloquent - 1ヶ月のグループの平均値を求める

これは、おそらくこのような何か私のテーブルhere

+0

を選択する方法を参照してください。この文字列で検索してください。あるいは、これらの平均の目的のために無視されるべきですか?それはグループ化の列のようです。 – alexrussell

+0

すると、 'xronos_metrisis'が欲しくなりません。私は毎日のために平均的な 'apotelesma'しか必要としません。 – Konstantinos

答えて

0

です。

$avg = Model::where('imeromina_metreisis', $carbon)->avg('apotelesma'); 

参照:
https://laravel.com/docs/5.1/queries#aggregates

はちょうどあなたの日付列に注意してください。 $carbonは、Laravelが広範囲に使用するCarbonの日付と時刻オブジェクトを表す変数です。平均が1日全体で、datetime(時間/分/秒を含む)を使用している場合は、このようなことが必要です。

$carbon = Carbon::now()->startOfDate(); 
$avg = Model::where('imeromina_metreisis', '>=', $carbon) 
    ->where('imeromina_metreisis', '<=', $carbon->copy()->endOfDay()) 
    ->avg('apotelesma'); 

はい、これらは組み込みのCarbonメソッドです。それは本当に素晴らしい図書館です。

編集:Carbonに関する詳細なドキュメント。私はあなたが任意の日の範囲を望むと思う。
http://carbon.nesbot.com/docs/

+0

私は、この質問は、特定の 'imerominia_metrisis'に対して' apotelesma'の平均値を得る方法を求めているのではなく、(日付だけで時間を無視して)グループ化して結果を繰り返すことを想像しています。 – alexrussell

+0

はい@alexrussellあなたは正しいです。 – Konstantinos

1

毎日のデータが必要なため、DATETIMEを使用する代わりに、最初にDATE形式を取得する必要があります。

$data = DB::table('table_name') 
     ->select(DB::raw('avg(apotelesma) as count, DATE(imeromina_metrisis) day')) 
     ->groupBy('day') 
     ->get(); 

は `xronos_metrisis`列が検索結果上の任意のベアリングを持っています生の発現 here

+0

これを試してみる – Konstantinos

関連する問題