Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 удаление дубликатов из таблицы по нескольким полям  [new]
relief
Member

Откуда:
Сообщений: 1197
есть таблица c 2 полями

OpenDate
Name
Count

как удалить все дубликаты, на основании этих 3 полей?
29 фев 12, 16:47    [12172020]     Ответить | Цитировать Сообщить модератору
 Re: удаление дубликатов из таблицы по нескольким полям  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
relief,

так сколько полей? 2 или 3?
Лучше напишите здесь CREATE TABLE
29 фев 12, 16:49    [12172046]     Ответить | Цитировать Сообщить модератору
 Re: удаление дубликатов из таблицы по нескольким полям  [new]
relief
Member

Откуда:
Сообщений: 1197
iap
relief,

так сколько полей? 2 или 3?
Лучше напишите здесь CREATE TABLE


3 поля
29 фев 12, 16:50    [12172050]     Ответить | Цитировать Сообщить модератору
 Re: удаление дубликатов из таблицы по нескольким полям  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
relief
iap
relief,

так сколько полей? 2 или 3?
Лучше напишите здесь CREATE TABLE


3 поля
WITH CTE(N)AS(SELECT ROW_NUMBER()OVER(PARTITION BY[OpenDate],[Name],[Count]ORDER BY(SELECT 0))FROM T)
DELETE CTE WHERE N>1;
Однако, осталось неясным, как узнать, какую запись оставлять, а какие удалять?
29 фев 12, 16:55    [12172099]     Ответить | Цитировать Сообщить модератору
 Re: удаление дубликатов из таблицы по нескольким полям  [new]
а какая разница
Guest
iap
relief
пропущено...


3 поля
WITH CTE(N)AS(SELECT ROW_NUMBER()OVER(PARTITION BY[OpenDate],[Name],[Count]ORDER BY(SELECT 0))FROM T)
DELETE CTE WHERE N>1;
Однако, осталось неясным, как узнать, какую запись оставлять, а какие удалять?

если они абсолютно идентичны, то думаю разницы нет.
29 фев 12, 16:58    [12172128]     Ответить | Цитировать Сообщить модератору
 Re: удаление дубликатов из таблицы по нескольким полям  [new]
relief
Member

Откуда:
Сообщений: 1197
iap
relief
пропущено...


3 поля
WITH CTE(N)AS(SELECT ROW_NUMBER()OVER(PARTITION BY[OpenDate],[Name],[Count]ORDER BY(SELECT 0))FROM T)
DELETE CTE WHERE N>1;
Однако, осталось неясным, как узнать, какую запись оставлять, а какие удалять?


любую.
т.к. в таблицу просто залили данные, которые там были.
т.е. данный запрос просто удалит записи которые будут повторяться 2,3 и т.д разы?
29 фев 12, 16:58    [12172129]     Ответить | Цитировать Сообщить модератору
 Re: удаление дубликатов из таблицы по нескольким полям  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
а какая разница
iap
пропущено...
WITH CTE(N)AS(SELECT ROW_NUMBER()OVER(PARTITION BY[OpenDate],[Name],[Count]ORDER BY(SELECT 0))FROM T)
DELETE CTE WHERE N>1;
Однако, осталось неясным, как узнать, какую запись оставлять, а какие удалять?

если они абсолютно идентичны, то думаю разницы нет.
Сказано, что идентичны три поля.
Но запись может состоять и из большего количества полей?
29 фев 12, 17:04    [12172190]     Ответить | Цитировать Сообщить модератору
 Re: удаление дубликатов из таблицы по нескольким полям  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
relief
iap
пропущено...
WITH CTE(N)AS(SELECT ROW_NUMBER()OVER(PARTITION BY[OpenDate],[Name],[Count]ORDER BY(SELECT 0))FROM T)
DELETE CTE WHERE N>1;
Однако, осталось неясным, как узнать, какую запись оставлять, а какие удалять?


любую.
т.к. в таблицу просто залили данные, которые там были.
т.е. данный запрос просто удалит записи которые будут повторяться 2,3 и т.д разы?
Поставьте эксперимент.
Сервер сам ответит.
29 фев 12, 17:05    [12172200]     Ответить | Цитировать Сообщить модератору
 Re: удаление дубликатов из таблицы по нескольким полям  [new]
relief
Member

Откуда:
Сообщений: 1197
iap
а какая разница
пропущено...

если они абсолютно идентичны, то думаю разницы нет.
Сказано, что идентичны три поля.
Но запись может состоять и из большего количества полей?


да. но на них не надо ориентироваться. т.е. эти 3 поля совпадают - дубликат
29 фев 12, 17:06    [12172209]     Ответить | Цитировать Сообщить модератору
 Re: удаление дубликатов из таблицы по нескольким полям  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
relief
iap
пропущено...
Сказано, что идентичны три поля.
Но запись может состоять и из большего количества полей?


да. но на них не надо ориентироваться. т.е. эти 3 поля совпадают - дубликат
Вам виднее
29 фев 12, 17:11    [12172256]     Ответить | Цитировать Сообщить модератору
 Re: удаление дубликатов из таблицы по нескольким полям  [new]
relief
Member

Откуда:
Сообщений: 1197
iap
relief
пропущено...


да. но на них не надо ориентироваться. т.е. эти 3 поля совпадают - дубликат
Вам виднее


iap,
Спасибо вам большое!
29 фев 12, 20:54    [12173264]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить