當我添加所示行此查詢失敗,簡單的mysql組需要...幫助通過查詢
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
這給我每個公司的記錄數量。
IE:
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
你不能在「其中」子句中使用聚合函數的結果。在檢索erow的時候應用了WHERE。但就此而言,「計數」的結果尚不可用。這就是'HAVING'起作用的地方,就像'where'一樣,但是在返回結果之前將其作爲查詢的最後階段。 – 2010-04-27 15:17:10