如何在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() 并且还返回每个组的计数