SQL计数查询
时间:2020-03-06 15:01:39 来源:igfitidea点击:
嗨,为什么这在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分组
解决方案
尝试
select HALID, count(HALID) from Outages.FaultsInOutages group by HALID having count(HALID) > 3
查询有两个错误:
- 通过分组时使用聚集的位置,通过使用
- 在不支持的条件下为聚合使用别名,可以通过再次使用聚合来解决
我们不能在where子句或者haveing子句中使用别名,因为直到生成结果集之后,才对其进行处理,正确的语法是
SELECT HALID, COUNT(HALID) AS CH FROM Outages.FaultsInOutages GROUP BY HALID HAVING COUNT(HALID) > 3
这会将HALID上的项目分组,然后仅返回针对特定HALID包含3个以上条目的结果