如何限制laravel中每个类别的结果

时间:2019-11-01 16:41:48

标签: sql count limit laravel-5.8 rank

$user_info = DB::table('category_user')
                 ->select('user_id','category', DB::raw('count(*) as total'))
                 ->groupBy('user_id','category')
                 ->limit(3)
                 ->orderBy('total', 'desc')
                 ->get();

我编写的代码将仅显示所有类别中的3个结果

我想将结果限制在每个类别的前3名,例如,有10个类别,并且每个类别中的数据很多,我只想显示每个类别的前3名。

1 个答案:

答案 0 :(得分:0)

你可以试试吗?

$user_info = DB::table('category_user')
                 ->select('user_id','category', DB::raw('count(*) as total'))
                 ->groupBy('user_id','category')->map(function($q){
                       return $q->take(3);
                   })->orderBy('total', 'desc')
                 ->get();