Получить счет на основе комбинаций значений из второго столбца - PullRequest
0 голосов
/ 10 октября 2019

У меня есть формат таблицы, как показано ниже:

Id Code
1   A
1   B
2   A
3   A
3   C
4   A
4   B

Я пытаюсь получить количество кодовых комбинаций, как показано ниже:

Code Count
A,B     2  -- Row 1,2 and Row 6,7 
A       1  -- Row 3
A,C     1  -- Row 4

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

1 Ответ

0 голосов
/ 10 октября 2019

Вам нужно как-то агрегировать строки и делать это дважды. Код выглядит примерно так:

select codes, count(*) as num_ids
from (select id, group_concat(code order by code) as codes
      from t
      group by id
     ) id
group by code;

group_concat() может быть написано listagg() или string_agg() в зависимости от базы данных.

В SQL Server используйте string_agg():

select codes, count(*) as num_ids
from (select id, string_agg(code, ',') within group (order by code) as codes
      from t
      group by id
     ) id
group by code;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...