У меня есть набор данных, какPostgresql выбрать дубликат столбца на другой колонке
ID STATUS SOURCE
1 new data1
1 old data2
2 old data1
2 new data2
, и я хочу, чтобы иметь возможность выбрать те дубликаты ID в колонке STATUS и сохранить SOURCE, окончательный список будет:
ID STATUS SOURCE
1 new data1
2 new data2
я могу сделать список дубликатов ID что-то вроде:
select id, status, source
from data
where id in (
select id
from data
group by id
having (count(*) > 1)
то я не могу найти способ фильтрации по статусу для удаления дубликатов.
Спасибо.
Итак, всякий раз, когда есть два или более дублирующих идентификатора, вы хотите сохранить один с 'status = 'new''? – dhke
да, а остальные данные в этой строке –
Если вы хотите полностью избавиться от дубликатов, вы можете «УДАЛИТЬ ОТ данных WHERE status =« old ». Если вы хотите только выбрать, то вы можете просто добавить другое условие: ... WHERE status = 'new' AND ... '. Это кажется слишком очевидным, хотя ... Я что-то упускаю? – Raffael