web-dev-qa-db-ja.com

laravelの列値の平均を取得する方法

このコラムがあるとしましょう

star
----
1    
3    
3    
1    
2    
5    
3

7つの行があり、整数値があります!追加し、ある行で分割したいです。

Laravelでどうすればいいですか。私はプレーンなPHPでそれを行うことができますが、laravelでそれを学びたいです。

9
Alen

これを試して :

$avgStar = Model::avg('star');

「Model」はモデル名に置き換えられます

25
Muthu17

クエリビルダーでそれをしたい場合は、avgのような集約メソッドを使用できます:

$avg_stars = DB::table('your_table')
                ->avg('star');

Laravel 5 docs 集計について。

5
Troyer

さらに列がある場合は、DB::rawを使用してデータベースマネージャーのネイティブ機能を使用できます。

$products = DB::table('products')
                 ->select('id','name',DB::raw('round(AVG(quantity),0) as quantity'))
                 ->groupBy('id','name')
                 ->get();
0