嗨,为什么这在SQL Server 2005中不起作用?
select HALID, count(HALID) as CH from Outages.FaultsInOutages
where CH > 3
group by HALID
我得到无效的列名“CH”
我认为拥有是正确的方法,但仍然会收到错误:
无效的列名“CH”。
运行时:
从Outages.FaultsInOutages中选择HALID,count(HALID)作为CH
按CH> 3的HALID分组
最佳答案
您不能在where子句或haveing子句中使用别名,因为直到生成结果集之后,才对别名进行处理,
SELECT HALID, COUNT(HALID) AS CH
FROM Outages.FaultsInOutages
GROUP BY HALID
HAVING COUNT(HALID) > 3
这会将HALID上的项目分组,然后仅返回针对特定HALID包含3个以上条目的结果