Если у вас нет дубликатов, вы можете использовать not exists
:
select t.*
from t
where not exists (select 1 from t t2 where t2.u = t.u and t2.c <> t.c);
Если у вас есть дубликаты u
/ c
, просто используйте id
:
select t.*
from t
where not exists (select 1 from t t2 where t2.u = t.u and t2.id <> t.id);
Если вы хотите переназначить порядковый номер, используйте также row_number()
:
select row_number() over (order by id) as new_id, t.*
from t
where not exists (select 1 from t t2 where t2.u = t.u and t2.c <> t.c);