当我添加显示的行时,此查询失败。。。
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