当我添加显示的行时,此查询失败。。。

Select Companyid, count(*) as cnt
from mytable
where State is not null
and cnt = 1  <------------------------- FAIL
group by CompanyID

有办法吗?
如果有帮助的话,这里有一个长长的背景。。。。
我有一个单表查询。
这是一张桌子的样品:
CompanyID, State
1,OH
1,IL
1,NY
2,IL
3,NY
3,OH
4,NY
5,CA
5,WA

我想要一个查询,它将返回如下内容:
2,IL
4,NY

到目前为止我有这个
Select Companyid, count(*) as cnt
from mytable
where State is not null
group by CompanyID

这给了我每个公司的记录数。
即:
1,3
2,1
3,2
4,1
5,2

现在我想过滤上面的列表到只有一个结果的两个记录。
我尝试添加另一个where子句,但失败了:
Select Companyid, count(*) as cnt
from mytable
where State is not null
and cnt = 1  <-------------------- FAIL
group by CompanyID

最佳答案

您可以使用Having-子句来限制在您的Group By中只出现一次的记录:

Select companyId, state
From mytable
Where state Is Not Null
Group By companyId
Having Count(*) = 1

10-07 23:17