当用户名相同时,我如何对相同的列值求和 - Laravel 5.2?

How i sum same a column value when username is same - Laravel 5.2?

我有一个 table,其中我有 winners 奖品的所有详细信息,其中 username 是哪个用户中奖的。现在我想在相同 username 时显示此列,然后它将显示总计 win_number。我尝试了一些方法,但找不到我想要的正确方法。如果我使用:

$winners = Winner::where('id', '>=', 1)->paginate(1000);

然后我会将检索结果显示为获胜者table,就像在数据库中一样。

我的获奖者table:

我的输出:

但想用ex检索所有数据。如果 guest 我想在每个 guest 名称旁边显示 4(guest 用户的获胜总数)

我试过另一种方法,但它只显示 guest 列,其中 username= guest.

$winners = DB::table('winners')
             ->select(DB::raw('*'))
             ->where('id', '<>', 1)
             ->where('username', '=', 'guest')
             ->get();

我怎样才能实现,来自获胜者的所有数据 table 如果用户名相同,那么我想在每个用户名旁边的获胜总数。顺便说一下,我一周都在查询。提前致谢。

你可以试试

DB::table('winners')->groupBy('identify_number')
   ->selectRaw('*, sum(win_number) as sum')
   ->get();

你可以这样使用

$data = DB::table("winners")
    ->select(DB::raw("COUNT(*) as count_row"))
    ->where('id', '<>', 1)
    ->groupBy(DB::raw("username"))
    ->get();

使用 Laravel 个集合的 sum() https://laravel.com/docs/5.5/collections#method-sum