从模型中获取结果,按列总和排序

时间:2016-12-03 18:55:01

标签: php mysql laravel laravel-5 laravel-5.3

在Laravel 5.3中,我有一个用户模型。我希望在我的服务器上拥有排名最高的10位用户。排名基于列Rank_aRank_bRank_c的总和。我怎么能这样做?

这是我到目前为止的代码:

$users = User::take(10)
        ->select(DB::raw('sum(Rank_a+Rank_b+Rank_c) AS total_points'))
        ->orderBy('total_points')
        ->get();
return response()->json($users);

1 个答案:

答案 0 :(得分:1)

您可以尝试以下查询:

$users = User::take(10)
            ->select('users.*', DB::raw('(Rank_a+Rank_b+Rank_c) AS total_points'))
            ->orderBy('total_points', 'desc')
            ->get();