MySQL Count GET ALL ROWS

时间:2011-05-24 15:34:57

标签: mysql sql

我希望获得count(AID)>5的所有行 当我执行查询时:

SELECT x,y,z, COUNT(AID) as total from Table where ... Having total >5

返回total > 5分组的行!但不是所有的行! 我想要每一行..

1 个答案:

答案 0 :(得分:3)

这不是聚合查询的工作方式。计数在一系列记录中完成(无论哪个符合WHERE子句的条件),然后HAVING子句筛选出计数小于5的任何记录。如果您想要特定的行,你可以尝试像

这样的计数
select * from
`Table`, 
(SELECT x,y,z, COUNT(AID) as total
   from `Table`
   where /* Some condition goes here */
   Having total >5) subqry
where subqry.x = Table.x
and subqry.Y = Table.Y
and subqry.Z = Table.Z

...当然,这假设x,y,zTable的唯一键。如果不是这种情况,那么这种方法可能无效。

另外,你错过了group by条款吗?