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

Откуда:
Сообщений: 3
Всем доброго времени суток!
Есть задача,посчитать количество одинаковых символов во всей таблице(тоесть например на выходе таблица такого вида:
й 9
ц 5
е 3
г 0

,где число рядом с символом показывает сколько раз тот или иной символ повторяется).
Со строкой все просто, сравниваем и если сходится, плюсуем к счетчику. Но вот как сделать это с таблицей? Подскажите пожалуйста, заранее благодарен.
7 фев 12, 19:21    [12049820]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет повторяющихся символов в таблице.  [new]
iljy
Member

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

1. Разбираете каждую строку на символы, собирая все в одну выборку.
2. Группируете по символам с использованием COUNT
3. Profit.
7 фев 12, 19:29    [12049835]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет повторяющихся символов в таблице.  [new]
Spartuner
Member

Откуда:
Сообщений: 3
А как лучше это сделать?(Разбивка строк на символы)
Вариант условий слишком огромен:)
Например:
 if substring(@str ,@number ,1) = 'q'
 set @eng_q = @eng_q + 1
	   

, где @eng_q-счетчик для конкретного символа, @number- каретка строки, которая увеличивается после каждой итерации сравнения.
7 фев 12, 19:40    [12049873]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет повторяющихся символов в таблице.  [new]
iljy
Member

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

declare @t table (s varchar(10))
insert @t
values ('acbdef'),('ghijklmnop')

select SUBSTRING(s, number, 1) ch
from @t t1 join master..spt_values t2 on t2.type = 'P' and t2.number between 1 and LEN(t1.s)
7 фев 12, 19:45    [12049889]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет повторяющихся символов в таблице.  [new]
Spartuner
Member

Откуда:
Сообщений: 3
Спасибо громадное. Все работает)))
8 фев 12, 11:45    [12052484]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить