我有一张表格,其中包含所有winners
奖品的详细信息,其中username
用户可以抽奖。现在,我希望在相同username
时显示此列,然后它将显示总win_number
。我尝试了一些方法,但无法找到我想要的正确方法。如果我使用:
$winners = Winner::where('id', '>=', 1)->paginate(1000);
然后我将检索结果显示为数据库中的获胜者表。
我的获奖者表:
我的输出:
但是想要用ex检索所有数据。如果guest
用户名我希望在4旁边的每个guest
名称中显示(获胜的总数为guest
用户)
我尝试了另一种方式,但它的展示只有guest
列username= guest
。
$winners = DB::table('winners')
->select(DB::raw('*'))
->where('id', '<>', 1)
->where('username', '=', 'guest')
->get();
我如何实现,来自获胜者表的所有数据,如果用户名相同,那么我想要在每个用户名旁边的总赢数。顺便说一句,我每周都在查询。提前谢谢。
答案 0 :(得分:3)
您可以尝试按
分组DB::table('winners')->groupBy('identify_number')
->selectRaw('*, sum(win_number) as sum')
->get();
答案 1 :(得分:0)
你可以像这样使用
$data = DB::table("winners")
->select(DB::raw("COUNT(*) as count_row"))
->where('id', '<>', 1)
->groupBy(DB::raw("username"))
->get();
答案 2 :(得分:0)
使用Laravel集合的sum() https://laravel.com/docs/5.5/collections#method-sum