С NOT EXISTS
:
select t.* from tablename t
where not exists (
select 1 from tablename
where id <> t.id and color = t.color and size = t.size
);
или с COUNT()
оконной функцией:
select t.Id, t.color, t.size
from (
select *, count(*) over (partition by color, size) counter
from tablename
) t
where t.counter = 1
Если вы хотите удалить повторяющиеся строки из таблицы, то:
delete from tablename t
where exists (
select 1 from tablename
where id <> t.id and color = t.color and size = t.size
);
См. Демонстрацию . Результатов:
| id | color | size |
| --- | ----- | ----- |
| 3 | blue | small |
| 4 | red | big |