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

Откуда: от верблюда
Сообщений: 399
Есть таблица
ЗначениеГруппа
1А
2А
3А
4А
1Б
3Б
4Б
2В
3В
4В


Парные строки со значением 1,3 из группы А встречаются только в группе Б, т.е. комбинация встречается 2 раза во всей таблице
Парные строки со значением 2,3 из группы А встречаются только в группе В, т.е. 2 раза
Парные строки со значением 3,4 из группы А встречаются в группах Б и В, т.е. 3 раза

Поэтому результат должен быть таким
Значение 1Значение 2Количество
131
231
342


Но как такое сделать что-то пока не соображу
В последствии понадобится выбирать топ Х самых частых комбинаций

+ Тестовая таблица, если нужно

declare @t1 table (val int, grp char)

insert into @t1 values 
 (1,'A')
,(2,'A')
,(3,'A')
,(4,'A')
,(1,'B')
,(3,'B')
,(4,'B')
,(2,'C')
,(3,'C')
,(4,'C')
9 июн 18, 16:39    [21482400]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать количество встречающихся парных строк в группах?  [new]
Посетитель
Member

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

Если не знаете с чего начать, соедините таблицу саму с собой по равенству Grp и первому val меньше второго val
и группируйте ваши пары как вам заблагорассудится
9 июн 18, 17:01    [21482448]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать количество встречающихся парных строк в группах?  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
TJ001,

и что вы называете "парными"?
почему, например 1,4 из А не парные?
9 июн 18, 19:13    [21482678]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать количество встречающихся парных строк в группах?  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20174
select t1.val, t2.val, count(*) cnt
from test t1, test t2
where t1.val < t2.val
and t1.grp = t2.grp
group by t1.val, t2.val
having count(*) > 1

fiddle
9 июн 18, 20:50    [21482804]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать количество встречающихся парных строк в группах?  [new]
TJ001
Member

Откуда: от верблюда
Сообщений: 399
Посетитель, Akina
Благодарю за ответы.

Дедушка, разве непонятно, что имелось ввиду, и нужно было абсолютно все варианты перечислить? Или Вы самоутверждаетесь за счет тыканья носом в недочеты? Да, полезное занятие, дает +10 к ЧСВ. Поздравляю с повышением.
13 июн 18, 08:58    [21487313]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать количество встречающихся парных строк в группах?  [new]
Посетитель
Member

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

вообще-то, это Вы пришли сюда с вопросом, не сумев его внятно сформулировать.
Вам указали на противорчие постановки и ответа, потому что от этого может зависеть решение задачи.

а на личности перешли именно Вы.
так что именно Вам стоит подумать над своим поведением, а не учить других решать Ваши же проблемы.
13 июн 18, 09:06    [21487324]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать количество встречающихся парных строк в группах?  [new]
TJ001
Member

Откуда: от верблюда
Сообщений: 399
Посетитель,

Может я и не прав
13 июн 18, 09:55    [21487423]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить