2008-10-02 124 views
2

嗨为什么不在SQL Server 2005中工作?SQL计数查询

select HALID, count(HALID) as CH from Outages.FaultsInOutages 

where CH > 3 

group by HALID 

我得到无效的列名“CH”


我认为有是去,但仍然收到错误的正确方法: 无效的列名“CH”。

当运行:

选择哈利德,通过具有CH哈利德计数(哈利德)如CH从Outages.FaultsInOutages 组> 3

回答

14

不能使用WHERE子句或HAVING子句中的别名,因为它不处理解决直到后生成的结果集,正确的语法是

SELECT HALID, COUNT(HALID) AS CH 
FROM Outages.FaultsInOutages 
GROUP BY HALID 
HAVING COUNT(HALID) > 3 

这将在哈利德组项目,则仅返回具有特定的哈利德

超过3项结果
4

尝试

select HALID, count(HALID) from Outages.FaultsInOutages 
group by HALID having count(HALID) > 3 

你的查询有两个错误:

  • 使用何处聚合时分组,通过使用hav解决荷兰国际集团
  • 使用别名为条件的集合,不支持,通过使用聚合再次