关于不能count今天奇葩

关于SQL中GroupBy不能Count的问题

数据库教程 2020-06-12 15:47:47 36

导读

今天碰到一个很奇葩的问题,卡了我很久。用laravel写查询,加了GroupBy之后再count,和原生语句里统计的数量不对。搞了很久,终于知道原因了。第一:GroupBy之后的Count返回的是分组后的第一组的数量通过GroupBy分组后,再执行Count()函数返回的是:分组后数据,第一个分组的……

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

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

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

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

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

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

来获取统计数量。

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

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


1253067 TFnetwork_cn