Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.12.28;
Скачать: CL | DM;

Вниз

удилить дубликаты строк MS SQL Server   Найти похожие ветки 

 
ekto ©   (2008-11-18 14:57) [0]

всем привет!
сабж.
пока сделал следующее:

SELECT *
 FROM text_to_tree
WHERE tree_id IN (SELECT tree_id
                    FROM text_to_tree
                  GROUP BY tree_id, text_id
                  HAVING COUNT(*) >1)
  AND text_id IN (SELECT text_id
                    FROM text_to_tree
                  GROUP BY tree_id, text_id
                  HAVING COUNT(*) >1)
ORDER BY tree_id, text_id

получаю список дубликатов. А что дальше делать?
Подскажите, плиз.


 
clickmaker ©   (2008-11-18 15:02) [1]

> А что дальше делать?

а какие из дублей требуется удалить?
уникальный ключ есть?


 
ekto ©   (2008-11-18 15:04) [2]


> clickmaker ©   (18.11.08 15:02) [1]

не, уникальным ключем будут, впоследствии, два поля: tree_id и text_id


 
clickmaker ©   (2008-11-18 15:07) [3]

ну если надо оставить один из дублей, значит надо как-то его отличить от остальных, ведь так?


 
ekto ©   (2008-11-18 15:09) [4]


>
> clickmaker ©   (18.11.08 15:07) [3]

так, вот я и спрашиваю, как пронумеровать только свои дубликаты:)


 
Palladin ©   (2008-11-18 15:10) [5]


> А что дальше делать?

простым запросом - ничего

выбрать с помощью курсора данные, бежать по нему (курсору) вставляя во временную таблицу
помечать строку (ни разу не встретившуюся во временной таблице) флагом "первой строки", остальные флагом "дублей"
удалить все из исходной таблицы
вставить в исходную таблицу все строки из временной с "флагом первой строки"


 
ekto ©   (2008-11-18 15:13) [6]


> Palladin ©   (18.11.08 15:10) [5]

понятно, спасибо.

ps. Не, однако че-бы в сиквелсервере не ввести уник строки, как интерьейзе?


 
Anatoly Podgoretsky ©   (2008-11-18 15:17) [7]

А сервер у тебя какой?


 
clickmaker ©   (2008-11-18 15:18) [8]

переименуй таблицу в xxx_dup, н-р
исходную создай заново
далее вставляй в свежесозданную из xxx_dup с проверкой if not exists


 
ekto ©   (2008-11-18 15:21) [9]

клева, спасибки

но эт один фик с курсором?


 
Palladin ©   (2008-11-18 15:24) [10]


> clickmaker ©   (18.11.08 15:18) [8]

угу, так даже оптимальней...


 
Palladin ©   (2008-11-18 15:26) [11]

ну а на самом деле правильно: не допускать появления этих строк на момент заполнения таблицы


 
ekto ©   (2008-11-18 15:29) [12]


> Palladin ©   (18.11.08 15:26) [11]

это-то я знаю:)


 
Ega23 ©   (2008-11-18 15:52) [13]


> ps. Не, однако че-бы в сиквелсервере не ввести уник строки,
>  как интерьейзе?


Они там есть. Просто ты не умеешь ими пользоваться...


 
Anatoly Podgoretsky ©   (2008-11-18 15:55) [14]

> Ega23  (18.11.2008 15:52:13)  [13]

Он просто плюет, когда его спрашивают какой у него сервер, наверно думает, что есть только один сервер.


 
b z   (2008-11-18 16:19) [15]

http://support.microsoft.com/kb/139444/ru
похоже на > clickmaker ©   (18.11.08 15:18) [8] :)


 
ekto ©   (2008-11-18 16:21) [16]


> Anatoly Podgoretsky ©   (18.11.08 15:55) [14]

2005


 
Anatoly Podgoretsky ©   (2008-11-18 16:23) [17]

> ekto  (18.11.2008 16:21:16)  [16]

В 2005 есть нумерация строк.


 
ekto ©   (2008-11-18 16:34) [18]


> Anatoly Podgoretsky ©   (18.11.08 16:23) [17]

не отыскал:(


 
stas ©   (2008-11-18 16:37) [19]

Добавь поле id - автоинкрементное и оставь те у которых минимальный id


 
Anatoly Podgoretsky ©   (2008-11-18 17:04) [20]

> ekto  (18.11.2008 16:34:18)  [18]

Ты не только не отыскал, но ты еще и не там задаешь вопрос, правда его и задавать не надо. Иди на SQL.RU у них там это вопрос входит в TOP 10 FAQ
Правда тебя там будут бить за подобную методику обсуждения.



Страницы: 1 вся ветка

Текущий архив: 2008.12.28;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.012 c
2-1226997574
SkyN
2008-11-18 11:39
2008.12.28
Как избавиться от 100% загрузки CPU? 5Мб лога в секунду.


2-1226918959
BiT
2008-11-17 13:49
2008.12.28
Подскажите, пожалуйста, как скопировать определенный текст в memo


15-1224695700
Unconnected
2008-10-22 21:15
2008.12.28
Работа с протоколом icq


2-1226565058
дед Маздай
2008-11-13 11:30
2008.12.28
Посылка строки из TThread в основной поток


6-1197227156
Алекс_
2007-12-09 22:05
2008.12.28
SPX/IPX