今天碰到一个很奇葩的问题,卡了我很久。用laravel写查询,加了GroupBy之后再count,和原生语句里统计的数量不对。搞了很久,终于知道原因了。
第一:GroupBy之后的Count返回的是分组后的第一组的数量
通过GroupBy分组后,再执行Count()函数返回的是:分组后数据,第一个分组的数量。
第二:使用distinct方法去除特定字段的重复计数,然后统计数量
比如说,在laravel里可以通过查询构造器
DB::(‘test’)->distinct('test.id)->count();
来获取统计数量。
坑爹是,laravel的文档里没有这个,自己搞了很久才搞明白。
distinct和groupby的区别,以及使用方法。
via:http://www.jicker.cn/5661.html