У меня есть SQL Server db с довольно большим количеством обмановков. Удаление дубликатов вручную просто не будет забавным, поэтому мне было интересно, есть ли какое-либо программирование или скрипты sql, которые я могу сделать, чтобы автоматизировать его.Петля через результирующий набор sql и удаляем [n] дубликаты
Ниже приведен мой запрос, который возвращает идентификатор и код дубликатов.
select a.ID, a.Code
from Table1 a
inner join (
SELECT Code
FROM Table1 GROUP BY Code HAVING COUNT(Code)>1)
x on x.Code= a.Code
я получить отдачу, как это, например:
5163 51727
5164 51727
5165 51727
5166 51728
5167 51728
5168 51728
Этот фрагмент кода показывает три возвращения для каждого идентификатора/кода (так первичку «хорошо» запись и два обманутые). Однако это не всегда так. Там может быть до [n] обманов, хотя 2-3 кажется нормой.
Я просто хочу как-то пройти через этот результирующий набор и удалить все, кроме одной записи. ЗАПИСИ УДАЛИТЬСЯ АРБИТРАЖНЫМИ, так как любой из них может быть «сохранен».
Почему производительность иметь важное значение для проблемы, как это? Похоже на 1, сделанный администратором. – JBrooks
Важно знать, что CTE медленны. Другие люди могут смотреть на этот вопрос в будущем, и у них могут быть разные проблемы для решения. –