今天碰到一个很奇葩的问题,卡了我很久。用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