嗨,为什么这在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的HALID分组> 3
答案 0 :(得分:14)
你不能在where子句或having子句中使用别名,因为直到生成结果集之后它才被处理,正确的语法是
SELECT HALID, COUNT(HALID) AS CH
FROM Outages.FaultsInOutages
GROUP BY HALID
HAVING COUNT(HALID) > 3
这将在HALID上对项目进行分组,然后仅返回具有超过3个特定HALID条目的结果
答案 1 :(得分:4)
尝试
select HALID, count(HALID) from Outages.FaultsInOutages
group by HALID having count(HALID) > 3
您的查询有两个错误: