Laravel group由n组组成

时间:2017-12-14 21:09:31

标签: laravel eloquent

假设我有一张表users,其中有数千条记录,每条记录都有name

我的目标是绘制一个显示最常见名称的饼图。例如,我想采用9个最常见的名称,并将其余的名称放在“其他”组中。

我无法弄清楚如何使用groupBy()take()或其他任何方法来实现这一目标。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用groupBy并计算raw

$groups = DB::table('users')
            ->select(DB::raw('count(*) as user_count, name'))
            ->groupBy('name')
            ->orderBy('user_count', 'desc') //lorder desc or asc
            ->limit(5) //number of groups
            ->get();

        dd($groups); you will see the user_count and name

饼图的数据为user_count / total_user