私は2つの列を持っています。 1つは日時(imeromina_metrisis)で、もう1つは整数(apotelesma)です。私がしようとしているのは、私がグラフに送ることができるように、毎日の平均整数を得ることです。どのように私はこれを行うことができますか考えていますか?Laravel Eloquent - 1ヶ月のグループの平均値を求める
これは、おそらくこのような何か私のテーブルhere
私は2つの列を持っています。 1つは日時(imeromina_metrisis)で、もう1つは整数(apotelesma)です。私がしようとしているのは、私がグラフに送ることができるように、毎日の平均整数を得ることです。どのように私はこれを行うことができますか考えていますか?Laravel Eloquent - 1ヶ月のグループの平均値を求める
これは、おそらくこのような何か私のテーブルhere
です。
$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/
私は、この質問は、特定の 'imerominia_metrisis'に対して' apotelesma'の平均値を得る方法を求めているのではなく、(日付だけで時間を無視して)グループ化して結果を繰り返すことを想像しています。 – alexrussell
はい@alexrussellあなたは正しいです。 – Konstantinos
毎日のデータが必要なため、DATETIMEを使用する代わりに、最初にDATE形式を取得する必要があります。
$data = DB::table('table_name')
->select(DB::raw('avg(apotelesma) as count, DATE(imeromina_metrisis) day'))
->groupBy('day')
->get();
は `xronos_metrisis`列が検索結果上の任意のベアリングを持っています生の発現
here
これを試してみる – Konstantinos
を選択する方法を参照してください。この文字列で検索してください。あるいは、これらの平均の目的のために無視されるべきですか?それはグループ化の列のようです。 – alexrussell
すると、 'xronos_metrisis'が欲しくなりません。私は毎日のために平均的な 'apotelesma'しか必要としません。 – Konstantinos