У меня есть таблица базы данных PostgreSQL под названием «user_links», которая в настоящее время допускает следующие повторяющиеся поля:
year, user_id, sid, cid
Уникальное ограничение в настоящее время является первым поле под названием «идентификатор», однако сейчас я ищу , чтобы добавить ограничение , чтобы убедиться year
, user_id
, sid
и cid
все уникальны , но я не могу применить ограничение , поскольку повторяющиеся значения уже существуют , которые нарушают это ограничение.
Есть ли способ найти все дубликаты?
sql
postgresql
duplicates
Джон
источник
источник
Ответы:
Основной идеей будет использование вложенного запроса с агрегацией счетчиков:
Вы можете настроить выражение where во внутреннем запросе, чтобы сузить поиск.
Есть еще одно хорошее решение, упомянутое в комментариях (но не все их читают):
Или короче:
источник
select co1, col2, count(*) from tbl group by col1, col2 HAVING count(*)>1