2011-02-14 124 views
0

我写的查询:凡/有上聚合函数问题

SELECT COUNT(*) AS count , var1, var2 
FROM table 
GROUP BY var1, var2 
ORDER BY count DESC 

这个查询的作品,但它抓住了一切。我试图只在count> x(任意数字)时才得到结果。

我一直在使用WHERE count > x并得到尝试:

1054 - 在 'where子句'

如果我使用HAVING count > x(在最后添加的话)我得到未知列 '垃圾邮件' :

1064 - 您的SQL语法错误;检查对应于你的MySQL服务器版本正确的语法使用近

其他细节的手册:使用MySQL 4.1

回答

0

您可以使用HAVING count(*) > x

x是一个整数。

SELECT COUNT(*) AS count , var1, var2 
FROM table 
GROUP BY var1, var2 
ORDER BY count(*) DESC 
Having count(*) > x 
+0

谢谢!这工作。我曾尝试过,但我必须误读文档,它建议HAVING应该在最后,除非你有一个LIMIT声明。显然ORDER BY也在它之前。非常感激! – cmkz 2011-02-14 17:01:40

0

您需要使用:

WHERE count(*) > x 

你不能在WHERE子句中使用别名。

您还可以使用:

HAVING count(*) > x