Самый быстрый “Получают Дубликаты” сценарий SQL

Что является примером быстрого SQL для получения дубликатов в наборах данных с сотнями тысяч записей. Я обычно использую что-то как:

SELECT afield1, afield2 FROM afile a 
WHERE 1 < (SELECT count(afield1) FROM afile b WHERE a.afield1 = b.afield1);

Но это довольно медленно.

43
задан Simon East 21 August 2012 в 05:48
поделиться

3 ответа

Это - более прямой путь:

select afield1,count(afield1) from atable 
group by afield1 having count(afield1) > 1
78
ответ дан Vinko Vrsalovic 26 November 2019 в 22:39
поделиться

Вы могли попробовать:

select afield1, afield2 from afile a
where afield1 in
( select afield1
  from afile
  group by afield1
  having count(*) > 1
);
16
ответ дан Tony Andrews 26 November 2019 в 22:39
поделиться

Подобный вопрос задали на прошлой неделе. Там существуют некоторые хорошие ответы.

SQL для нахождения дублирующихся записей (в группе)

В том вопросе OP интересовался всеми столбцами (поля) в таблице (файл), но строки принадлежали той же группы, если у них было то же значение ключа (afield1).

существует три вида ответов:

подзапросы в, где пункт, как некоторые из других ответов в здесь.

внутреннее объединение между таблицей и группами просмотрело как таблицу (мой ответ)

и аналитические запросы (что-то, что это плохо мне знакомо).

5
ответ дан Community 26 November 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: