2010-12-22 62 views
1

以下非常簡單的查詢SQL 2005:如何使用GROUP BY與子查詢

select distinct guid, browser_agent 
from tblMyGlossary 
where browser_agent is not null 

提供了以下結果:

guid   browser_agent 
367DE2B8-88A5-4DA9-ACBB-C0864493DC1F Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727) 
5DCB918E-DA56-4545-A4E3-D09B1B803422 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727) 
998B8F37-2C9A-49EB-AA0B-CF88C4CC7BDF Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 
A0DD3BCB-E8A9-4434-A869-C343FB21F993 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727) 

㈡希望能夠計算的獨特數browser_agent字符串,所以我正在執行以下查詢:

select browser_agent, count(browser_agent) as 'count' 
from 
(
select distinct guid, browser_agent 
from tblMyGlossary 
where browser_agent is not null 
) 
group by browser_agent 
order by 'count' desc; 

問題是SQL 2005正在抱怨:

Msg 156,Level 15,State 1,Line 8 關鍵字'group'附近的語法不正確。

任何人都可以闡明如何解決這個問題嗎?我已經用完了想法。

非常感謝,

馬克

回答

4

你需要你的別名派生表。

select browser_agent, count(browser_agent) as 'count' 
from 
(
    select distinct guid, browser_agent 
    from tblMyGlossary 
    where browser_agent is not null 
) a 
group by browser_agent 
order by 'count' desc; 
+0

愚蠢的我 - 當然!它總是簡單的東西,但由於長時間的編碼/疲勞,你看不到它。非常感謝RedFilter。 – Mark 2010-12-22 22:38:10