我正在使用Laravel 5.5,我想知道如何在一个查询中获得每列的最高价值?
这是可能的还是我们应该逐个查询?
我尝试了以下代码。
DB::table('family')->max('children')->max('salary');
当我尝试DB::table('family')->max('children')
时,效果很好。但是当我尝试DB::table('family')->max('children')->max('salary')
时,我会收到以下错误
在字符串
上调用成员函数max()
答案 0 :(得分:1)
您可以通过单一查询获得。
$result = DB::table("family as f")
->select([DB::raw('MAX(f.children) AS children_max'),DB::raw('MAX(f.salary) AS salary_max')])
->groupBy('f.id')
->first();
或使用单独的->max()
方法。
$family = DB::table('family');
$max_children = $family->max('children');
$max_salary = $family->max('salary');
中获取更多详情
答案 1 :(得分:0)
使用您的口才添加max()
以获取每个列值的最大值。
ModelName::select(DB::raw('MAX(column1) AS colum1'),DB::raw('MAX(colum2) AS colum2'))->get();
检查此laravel docs
修改强> 您可以使用laravel中的查询构建器来执行此操作。