2011-05-24 63 views
-5

我想有count(AID)>5 當我查詢的所有行:MySQL的計數得到所有行

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

它返回的行隨着total > 5組合!但不是所有的行! 我想要每一行..

+1

您是否想要所有大於5的行或您希望按所有行分組的計數?你的問題不清楚。 – 2011-05-24 15:38:58

+1

你的問題是什麼?我不明白。 – Naresh 2011-05-24 15:39:31

+0

如果我確實選擇與計數它將返回有計數的行,但我實際上希望所有行適用於有! – Meabed 2011-05-24 15:41:22

回答

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子句?