group by 和count 联合使用问题

工作中要根据用户发布的产品数量来排序做分页,使用group by uid 用count(uid) 来统计的数量和想要的数量不正确。

count统计的数量是被group by 分组以后每一组中数据的数量,而不是分组的数量。

解决方法:使用子查询

 

SELECT COUNT(1) FROM( 
  SELECT uid,COUNT(uid) FROM test GROUP BY product  
) test

 

里面的查询结果是一个表,但是这个表没有名字,不给他名字就报错,所以加了一个别名test(随便起)
count(1)也不是很好理解就换成count(fbrandid)或count(*)

 

总结:有时候是在解决不了时,不妨考虑下子查询。虽然好多人说不要用子查询~

原文地址:https://www.cnblogs.com/dhsx/p/5476892.html