如何在laravel中计算groupby结果的记录数?

Posted

技术标签:

【中文标题】如何在laravel中计算groupby结果的记录数?【英文标题】:How to count the number of records with groupby result in laravel? 【发布时间】:2017-11-19 03:31:50 【问题描述】:

我被困在这个问题上,我想计算记录的数量,但每次都会返回错误的值。这是我的表:-

id  contributor_id  user_id     history_id  contributor_income 
1   1               14              1               0.57    
2   1               14              2               0.57    
3   1               14              3               0.57    
4   1               14              4               3.75    
5   2               14              5               0.57 

上面是我的表,但它给了我 4,但我想要 2。这是我的查询:-

$query  = DB::table('contributor_commissions')
          ->groupBy('contributor_id')->count();

但是当我打印它时,它给出的计数是 4,但只有两组contributor_id

【问题讨论】:

结果集中有多少行? 现在表中总共有 5 行,并且有两组contributor_id,但是当我打印上面的查询时它给了我 4 所以回显该查询中返回的所有行,看看是什么! 只有两行,但我不想使用 php count 函数来计算我想用查询生成器做的数组 是的,一个计数为 4,另一个计数为 1,对吗?所以查询工作正常:) 【参考方案1】:

这应该可以 DB::table('contributor_commissions')->distinct('contributor_id')->count()

【讨论】:

【参考方案2】:

请试试这个

DB::table('contributor_commissions')->distinct('contributor_id')->count('contributor_id');

【讨论】:

我要 count 不获取数组 将contributor_commissions 更改为contributor_id @kanumahajan 它会起作用-无论如何感谢亲爱的更正【参考方案3】:

试试这个。

$query = $user_info = DB::table('contributor_commissions')
                     ->select('contributor_id', DB::raw('count(*) as total'))
                     ->groupBy('contributor_id')
                     ->get();

【讨论】:

不要数组我要计数【参考方案4】:

给你:

$reserves = DB::table('contributor_commissions')->selectRaw('*, count(*)')->groupBy('contributor_id');

【讨论】:

它是从这里复制和粘贴的答案:***.com/questions/34827917/… 你为什么不将其标记为重复或通过链接提供参考 @MayankPandeyz 而不是用户必须单击并去那里找到代码。这有什么问题?只需复制代码并在您的代码中使用它。太简单!!我没有复制这个。

以上是关于如何在laravel中计算groupby结果的记录数?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Eloquent groupBy() 并且还返回每个组的计数

如何在laravel中获取所有月份的记录数

Laravel Eloquent按天分组结果

从 laravel 中的 groupBy 获取行 ID

如何在 laravel 中使用 concat 和 group by?

如何在关系 Laravel 中使用“groupBy”