今天碰到一个很奇葩的问题,卡了我很久。用laravel写查询,加了GroupBy之后再count,和原生语句里统计的数量不对。搞了很久,终于知道原因了。

第一:GroupBy之后的Count返回的是分组后的第一组的数量

通过GroupBy分组后,再执行Count()函数返回的是:分组后数据,第一个分组的数量。

第二:使用distinct方法去除特定字段的重复计数,然后统计数量

比如说,在laravel里可以通过查询构造器

DB::(‘test’)->distinct('test.id)->count();

来获取统计数量。

坑爹是,laravel的文档里没有这个,自己搞了很久才搞明白。

distinct和groupby的区别,以及使用方法。

转载于:https://my.oschina.net/shunshun/blog/3064896

原文链接: https://my.oschina.net/shunshun/blog/3064896 谈一谈那些隐藏着的秘密吧!!! laravel 框架 写统计用户的领取数量,打算用 group By + count 来实现(去重+统计),加了 group By之后再 count ,统计出来不的数量不对。查询资料+反复测试终于得到了解决方案。 错误的查询语句 :cross_mark: Model::whereIn('course_id',$course_ids)-> group By('uid')-> count (); 通过 group By分组后,再执行 Count ()函数返回的是:分组后数据,第一个分组的数量。 正确的查询语句 :check_mark: Model::whereIn('course_id',$course_ids)-> group By(' MySQL -- Group by分组与 count 计数(进阶)1、 Group by语法2、创建表格3、题目代码部分4、文末彩蛋      更多关于 数据库 知识请加关注哟~~。若需联系和想安装 MySQL 请加博主:      QQ:3327908431     &nbs... 业务需要做一个待办事件,其 主办人是一个,协作人是多个;然后我做了两个表,附表用来存协作人,与主表之间是一对多的关系,列表显示需要全部数据采用了左连接查询。 Left Join 求两个表的交集外加左表剩下的数据。 结果呢,如果协作人是1个的时候没 问题 ,当为多个时,就会出现多条重复数据。 一开始直接采用 group by,这当然可以去重,不过 laravel 封装的 count 方法 直接取了结果 的第一个数据,也就是5,实际结果我要的是6,如图: 文章转发自专业的 Laravel 开发者社区,原始链接:https://learnku.com/ laravel /t/29000Eloquent 有一个鲜为人知的函数叫 with Count ():它可以帮助获取包括远程一对多关系在内的对象关联的记录条数。接下来看示例。在我们的示例小项目 ,我们有三个模型:User,Post 以及 Comment。所有的关联关系都可以用这三个模型来举例描述,先看 app/...