2013-08-28 24 views
2

我在下面有一个简单的SQL查询,它为我生成了一个可用的结果。不过,我希望进一步限制这个查询的结果,以便只包括别名列总数小于10的结果。我试图直接引用where子句中的别名列,并且还重复了COUNT()部分where子句,但这不起作用。这里是查询,预先感谢帮助。如何在包含分组函数的where子句中引用别名列

SELECT COUNT(DISTINCT iDomainID) AS totInFile, iFileGroup 
FROM Domains.`ApacheVirtualHosts` 
GROUP BY iFileGroup 
+1

没试过,但它听起来像是你需要HAVING子句。像GROUP BY iFileGroup HAVING COUNT(DISTINCT iDomainID)<10 – DaveH

回答

4

您可以使用HAVING子句进一步过滤:

SELECT COUNT(DISTINCT iDomainID) AS totInFile, iFileGroup 
FROM Domains.`ApacheVirtualHosts` 
GROUP BY iFileGroup 
HAVING COUNT(DISTINCT iDomainID) < 10; 

HAVING子句将允许您筛选使用聚合函数的数据。

+0

哇,非常感谢你,我很感激,我会接受你的答案,当时间到了。 – Jacob

2

你需要一个HAVING条款:

SELECT COUNT(DISTINCT iDomainID) AS totInFile, iFileGroup 
FROM Domains.`ApacheVirtualHosts` 
GROUP BY iFileGroup 
HAVING COUNT(DISTINCT iDomainID) < 10