как ограничить результат для каждой категории в laravel - PullRequest
2 голосов
/ 01 ноября 2019
$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 голосов
/ 01 ноября 2019

Можете ли вы попробовать это?

$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();
...