SQL 2005: как использовать GROUP BY с подзапросом - PullRequest
1 голос
/ 23 декабря 2010

Следующий очень простой запрос

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 жалуется:

Сообщение 156, Уровень 15, Состояние 1, Строка 8 Неверный синтаксис рядом с ключевым словом group.

Может кто-нибудь пролить свет на то, как решить эту проблему, пожалуйста? У меня закончились идеи.

Большое спасибо,

Mark

1 Ответ

4 голосов
/ 23 декабря 2010

Вам нужно создать псевдоним вашей производной таблицы.

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...