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

Php 当用户名相同时,如何求相同列值的和-Laravel 5.2?,php,mysql,laravel,laravel-5.2,Php,Mysql,Laravel,Laravel 5.2,我有一个表格,其中列出了所有获奖者的详细信息,其中包含用户名,用户从中获得奖品。现在我想在相同的用户名时显示此列,然后它将显示总计赢号。我试过一些方法,但找不到我想要的正确方法。如果我使用: $winners = Winner::where('id', '>=', 1)->paginate(1000); 然后,我将把检索结果作为winners表显示在数据库中 我的赢家表: 我的输出: 但要检索所有数据,例如:如果guest用户名,我希望在每个guest姓名中显示4个(作为gue

我有一个表格,其中列出了所有
获奖者
的详细信息,其中包含
用户名
,用户从中获得奖品。现在我想在相同的
用户名
时显示此列,然后它将显示总计
赢号
。我试过一些方法,但找不到我想要的正确方法。如果我使用:

$winners = Winner::where('id', '>=', 1)->paginate(1000);
然后,我将把检索结果作为winners表显示在数据库中

我的赢家表:

我的输出:

但要检索所有数据,例如:如果
guest
用户名,我希望在每个
guest
姓名中显示4个(作为
guest
用户赢得的总人数)

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

$winners = DB::table('winners')
             ->select(DB::raw('*'))
             ->where('id', '<>', 1)
             ->where('username', '=', 'guest')
             ->get();
$winners=DB::table('winners')
->选择(DB::raw('*'))
->其中('id','',1)
->其中('username','=','guest')
->get();
如何才能实现,所有数据都来自winners表,只要用户名相同,那么我想在每个用户名旁边加上winners总数。顺便说一句,我每周都在询问。提前谢谢。

您可以通过

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();
$data=DB::table(“赢家”)
->选择(DB::raw(“计数(*)作为计数行”)
->其中('id','',1)
->groupBy(DB::raw(“用户名”))
->get();
使用Laravel集合的sum()

$winners=DB::table('winners')->select(DB::raw('*')->where('id','',1)->where('username','=','guest')->sum('win_number');正如我在上面写的那样,只需在您的查询中添加sum即可检查查询..它将不起作用,因为username=guest。它将仅为来宾用户名显示。但我希望每个用户旁边的所有数据总和都是
winners
DB::table('winners')->sum('winners')
$winners=DB::table('winners')->sum('winners');工作正常,但我在winners表中总共有11行。但在检索数据时,其显示为8行。它有4个客人用户我需要所有的客人行,但在我想要赢4号旁边的每一个客人行中。您的查询只检索一个赢4号的客人用户行,但我想要所有4个赢4号的客人用户。您如何区分任务?它起作用,需要选择所有值,但我在winners表中总共有11行。但在检索数据时,其显示为8行。它有4个客人用户,我需要所有的客人行,但在旁边的每一个客人行,我想赢4号。