Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 запрос с несколькими агрегирующими функциями  [new]
aryumin
Member

Откуда:
Сообщений: 18
Здравствуйте!
Подскажите, пожалуйста, как можно объединить несколько агрегирующих функций в одном запросе?
Мне необходимо узнать сколько слов нескольких групп слов содержится в строках таблицы и объединить результаты подсчёта встречаемости каждой из групп слов в одну таблицу.

То есть должно получиться:
группа слов 1 (название столбца) - n слов (результат подсчёта встречаемости группы слов)
группа слов 2 (название столбца) - m слов (результат подсчёта встречаемости группы слов)
и т.д.

Без ошибок работают запросы такого типа:
SELECT COUNT(comments) FROM [dbo].[zlatoimport] where FREETEXT(comments,'лавочки, скамеечки, лавка, скамейка, сидеть, присесть')

(comments - столбец таблицы, в котором находятся тексты)

Но мне надо объединить запросы по всем группам слов в один. Что-то вроде:

SELECT COUNT(comments) AS 'лавочки' FROM [dbo].[zlatoimport] where FREETEXT(comments,'лавочки, скамеечки, лавка, скамейка, сидеть, присесть'),
SELECT COUNT(comments) AS 'освещение' FROM [dbo].[zlatoimport] where FREETEXT(comments, 'фонарь, освещение, свет')

Однако, такой запрос не работает.
Подскажите, пожалуйста, как объединить много таких запросов в один.

Спасибо
4 сен 14, 15:46    [16535771]     Ответить | Цитировать Сообщить модератору
 Re: запрос с несколькими агрегирующими функциями  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
aryumin,

UNION, UNION ALL
4 сен 14, 15:57    [16535830]     Ответить | Цитировать Сообщить модератору
 Re: запрос с несколькими агрегирующими функциями  [new]
aryumin
Member

Откуда:
Сообщений: 18
Владислав Колосов
aryumin,

UNION, UNION ALL


Владислав, спасибо
Извините, не знаю как их применить. Напишите, пожалуйста, по-подробнее
4 сен 14, 16:03    [16535861]     Ответить | Цитировать Сообщить модератору
 Re: запрос с несколькими агрегирующими функциями  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
SELECT 'лавочки'   AS 'наименование', COUNT(comments) AS 'количество' FROM [dbo].[zlatoimport] where FREETEXT(comments,'лавочки, скамеечки, лавка, скамейка, сидеть, присесть')
UNION ALL
SELECT 'освещение' AS 'наименование', COUNT(comments) AS 'количество' FROM [dbo].[zlatoimport] where FREETEXT(comments, 'фонарь, освещение, свет')
4 сен 14, 16:04    [16535869]     Ответить | Цитировать Сообщить модератору
 Re: запрос с несколькими агрегирующими функциями  [new]
aryumin
Member

Откуда:
Сообщений: 18
DmitryVT
SELECT 'лавочки'   AS 'наименование', COUNT(comments) AS 'количество' FROM [dbo].[zlatoimport] where FREETEXT(comments,'лавочки, скамеечки, лавка, скамейка, сидеть, присесть')
UNION ALL
SELECT 'освещение' AS 'наименование', COUNT(comments) AS 'количество' FROM [dbo].[zlatoimport] where FREETEXT(comments, 'фонарь, освещение, свет')


Огромное Вам спасибо! Работает :-) Осталось понять почему работает (только начинаю осваивать SQL) :-) :-) :-)
4 сен 14, 16:11    [16535921]     Ответить | Цитировать Сообщить модератору
 Re: запрос с несколькими агрегирующими функциями  [new]
aryumin
Member

Откуда:
Сообщений: 18
DmitryVT,

Вопрос несколько не по самой теме, но очень важный:
Как работает поиск слов в FREETEXT с учетом морфологии? То есть нужно ли вводить слова разных частей речи (освещение и освещать) или достаточно слова одной части речи?
4 сен 14, 16:29    [16536022]     Ответить | Цитировать Сообщить модератору
 Re: запрос с несколькими агрегирующими функциями  [new]
Glory
Member

Откуда:
Сообщений: 104751
http://msdn.microsoft.com/ru-ru/library/ms176078.aspx
4 сен 14, 17:33    [16536408]     Ответить | Цитировать Сообщить модератору
 Re: запрос с несколькими агрегирующими функциями  [new]
aryumin
Member

Откуда:
Сообщений: 18
Glory
http://msdn.microsoft.com/ru-ru/library/ms176078.aspx

Спасибо!
4 сен 14, 23:12    [16537563]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить