SQL 计数查询
Posted
技术标签:
【中文标题】SQL 计数查询【英文标题】:SQL count query 【发布时间】:2008-10-02 13:56:22 【问题描述】:您好,为什么这在 SQL Server 2005 中不起作用?
select HALID, count(HALID) as CH from Outages.FaultsInOutages
where CH > 3
group by HALID
我得到无效的列名“CH”
我认为 have 是正确的方法,但仍然收到错误: 列名“CH”无效。
运行时:
从 Outages.FaultsInOutages 中选择 HALID, count(HALID) as CH 按 CH > 3 的 HALID 分组
【问题讨论】:
【参考方案1】:您不能在 where 子句或 have 子句中使用别名,因为它在生成结果集之后才被处理,正确的语法是
SELECT HALID, COUNT(HALID) AS CH
FROM Outages.FaultsInOutages
GROUP BY HALID
HAVING COUNT(HALID) > 3
这将对 HALID 上的项目进行分组,然后仅返回具有特定 HALID 的 3 个以上条目的结果
【讨论】:
【参考方案2】:试试
select HALID, count(HALID) from Outages.FaultsInOutages
group by HALID having count(HALID) > 3
您的查询有两个错误:
在分组时使用 where 聚合,使用 have 解决 在条件中为聚合使用别名,不支持,通过再次使用聚合解决【讨论】:
以上是关于SQL 计数查询的主要内容,如果未能解决你的问题,请参考以下文章