Получите разницу уникальных элементов ID на основе флага в SQL - PullRequest
1 голос
/ 14 января 2020

У меня есть таблица SQL, из которой я хочу извлечь уникальные элементы по идентификатору, сравнивая разные группы, например:

ID,Group,Product
a,2,33
a,1,83
b,3,51
c,2,33
b,1,20
a,3,20
b,2,51
a,2,83

Если у меня есть два продукта, равные в разных группах для одного и того же идентификатора тогда я их не спасу. В результате:

ID,Group,Unique
a,2,33
c,2,33
b,1,20
a,3,20

Я пытаюсь это сделать в SQL, но я не знаю, как это сделать, пожалуйста, помогите мне!

Ответы [ 3 ]

2 голосов
/ 14 января 2020

Удалить все строки, которые имеют один и тот же продукт и разные группы:

select * 
from yourtable a 
where not exists(
    select 1 from yourtable b where a.Product = b.Product and a.Group <> b.Group
)
1 голос
/ 14 января 2020

Один метод агрегации:

select id, max(group) as group, product
from t
group by id, product
having min(group) = max(group);
1 голос
/ 14 января 2020
select * from table_1
qualify count("product") over(partition by "group")=1
...