如何在laravel中获得列值的平均值

gblwokeq  于 2023-03-31  发布在  其他
关注(0)|答案(6)|浏览(172)

假设我有这个列

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

它有七行,有整数值!我想让它相加,并除以有行。
我可以用普通的php来做,但我想在laravel中学习。

kzipqqlq

kzipqqlq1#

试试这个:

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

“型号”将替换为您的型号名称

whitzsjs

whitzsjs2#

如果你想用查询构建器来做这件事,你可以使用像avg这样的聚合方法:

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

Laravel 5关于聚合的文档。

juud5qan

juud5qan3#

如果您有更多的列,则可以使用DB::raw来使用数据库管理器的本机函数

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

kq0g1dla4#

Table::Where('column', $case)->pluck('column')->avg()

sqxo8psd

sqxo8psd5#

如果需要添加多个条件,请尝试以下操作:
型号:

$avgStar = YourModel::Where(
  [
    ['star', '>', 1],
    ['star', '<>', 0]
    .....
  ])->pluck('star')->avg();

使用DB:

$avgStar = DB::table('table_name')->Where(
  [
    ['star', '>', 1],
    ['star', '<>', 0]
    .....
  ])->pluck('star')->avg();
ct2axkht

ct2axkht6#

//假设模型名称是Review,表名称是review,您在它上面有一个'星星'列

$value = Reviews::all();
$value->avg('star');

return view('page.name')->withValue($value);

//它将计算一个平均值

相关问题