Категоризация групп по группам по их содержанию - PullRequest
0 голосов
/ 10 января 2020

У меня есть представление, которое является продуктом двух объединенных таблиц:

ID Type
1   A
2   A
2   B
3   B

В столбце Тип может быть только два значения: A или B.

Я хотел бы объединить Идентификаторы на три категории: Catgegory_A, Category_B и Category_AB. Если идентификатор связан только с типом A, ему присваивается Category_A, если идентификатор связан с типами A и B, он связан с Categoryry_AB. Исходя из этих правил, приведенное выше представление должно быть классифицировано следующим образом:

ID  Category
1  Category_A
2  Category_AB
3  Category_C

Можно ли написать запрос SQL для достижения этой цели?

Ответы [ 2 ]

0 голосов
/ 10 января 2020

Независимо от ответа Гордона, я придумал следующее ...

SELECT ID,
       CASE
           WHEN COUNT(*) > 1 THEN 'AB'
           ELSE MAX(Type)
       END AS Category
FROM Products
GROUP BY ID

См. SQLFiddle для запуска:)

0 голосов
/ 10 января 2020

Я бы назвал их по-другому, но логика c:

select id,
       (case when min(category) = max(category)
             then 'Category_' || min(category)
             else 'Category_AB'
        end)
from t
group by id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...