2008-10-02 132 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解決荷蘭國際集團
  • 使用別名爲條件的集合,不支持,通過使用聚合再次