2017-10-29 22 views
0

'where'を使用して平均値を簡単に取得できます。Laravelで平均値を取得する方法

 $rate = DB::table('reviews') 
      ->where('p_id', 2) 
      ->avg('rate'); 

しかし、すべての平均値GROUPをp_idで取得する方法はわかりません。

id p_id rate 
1 2 3 
2 2 4 
3 2 3 
4 1 4 
5 2 3 
6 2 2 
7 2 5 
8 3 3 
9 3 2 

私が望む結果は以下のようなものですので:

P_ID 1:平均値

P_ID 2:平均値

P_ID 3:平均値

答えて

0

あなたはselectRawを使用することができますgroupByを使用します。

コード:

$result = DB::table('reviews') 
       ->groupBy('p_id') 
       ->selectRaw('p_id, avg(rate)') 
       ->get();` 

あなたは、データベースのマニュアルを確認するかどうかをデータベース内の平均機能を使用することができます。私はmariadbを使用しており、データベースのavg関数をサポートしています。

関連する問題