Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Удаление дубликатов  [new]
DanChe1708
Guest
Доброго времени суток!
Подскажите, как удалить дублирующие записи в таблице.
Дано:
В таблице существуют четыре записи, которые разбиваются на две пары. Первая пара имеет одинаковые номера документов, названия документов и имена файлов (но разные расширения типа одно RTF другое TIF). Вторая пара повторяет первую по номеру документа, названию и именам файлов. У всех четырех разные ID.
Задача:
Требуется удалить одну из пар.
При данных условиях такое возможно?

Заранее благодарен
1 ноя 11, 13:48    [11532717]     Ответить | Цитировать Сообщить модератору
 Re: Удаление дубликатов  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
DanChe1708
При данных условиях такое возможно?
Да.
1 ноя 11, 13:51    [11532745]     Ответить | Цитировать Сообщить модератору
 Re: Удаление дубликатов  [new]
DanChe
Member

Откуда:
Сообщений: 4
Подскажите пожалуйста, как это делать..

К сообщению приложен файл. Размер - 40Kb
1 ноя 11, 13:53    [11532768]     Ответить | Цитировать Сообщить модератору
 Re: Удаление дубликатов  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
Легко, первое что пришло в голову

select distinct max(id), [номер], [наименование], [имя файла] into #tmp
from MyTab
group by id


delete from MyTab
where id not in (select id from #tmp)

если подумать то скорее всего найдутся более рациональные решения...
1 ноя 11, 14:04    [11532870]     Ответить | Цитировать Сообщить модератору
 Re: Удаление дубликатов  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
ой, канечноже

select distinct max(id), [номер], [наименование], [имя файла] into #tmp
from MyTab
group by [номер], [наименование], [имя файла]


delete from MyTab
where id not in (select id from #tmp)
1 ноя 11, 14:05    [11532880]     Ответить | Цитировать Сообщить модератору
 Re: Удаление дубликатов  [new]
DanChe
Member

Откуда:
Сообщений: 4
Дело в том что ID разные((
1 ноя 11, 14:05    [11532891]     Ответить | Цитировать Сообщить модератору
 Re: Удаление дубликатов  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
и? я ведь пример привел... прочитать его можете?
1 ноя 11, 14:06    [11532902]     Ответить | Цитировать Сообщить модератору
 Re: Удаление дубликатов  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
да и вообще скорее всего distinct не нужен
1 ноя 11, 14:07    [11532913]     Ответить | Цитировать Сообщить модератору
 Re: Удаление дубликатов  [new]
DanChe
Member

Откуда:
Сообщений: 4
У каждой записи свой ID , а в запросе, как понимаю по мы получаем одну строку в том случае, если у каждого элемента пары одинаковые ID внутри пары. После чего удаляем из таблицы по ID.
1 ноя 11, 14:23    [11533084]     Ответить | Цитировать Сообщить модератору
 Re: Удаление дубликатов  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31978
DanChe
а в запросе, как понимаю по мы получаем одну строку в том случае, если у каждого элемента пары одинаковые ID внутри пары
Нет
1 ноя 11, 14:25    [11533105]     Ответить | Цитировать Сообщить модератору
 Re: Удаление дубликатов  [new]
DanChe
Member

Откуда:
Сообщений: 4
все, понял. Спасибо большое
1 ноя 11, 14:27    [11533128]     Ответить | Цитировать Сообщить модератору
 Re: Удаление дубликатов  [new]
Teufell
Guest
ROW_NUMBER может выручить ;-)
1 ноя 11, 15:49    [11533938]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить