|
как удалить из таблицы дублирующиеся строки?
|
|||
---|---|---|---|
#18+
есть таблица, в которой записи должны быть уникальны по сочетанию двух полей - имя+фамилия так исторически сложилось, что у нее нет ограничений типа unique или primary key надо каким-то образом ее очистить от дублирующихся по сочетанию имя+фамилия значений подскажите, пожалуйста, как это сделать ЗЫ: таблица огромная(десятки миллионов) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2004, 12:00 |
|
как удалить из таблицы дублирующиеся строки?
|
|||
---|---|---|---|
#18+
2 PrettyFly_M OID поле есть? Попробуте так : Код: plaintext 1. 2.
P.S. В MS SQL это можно сделать через джоин, если мне кто либо покажет что так же можно сделать в Postgre буду благодарен. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2004, 12:39 |
|
как удалить из таблицы дублирующиеся строки?
|
|||
---|---|---|---|
#18+
Сорри неправильно подсказал ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2004, 12:41 |
|
как удалить из таблицы дублирующиеся строки?
|
|||
---|---|---|---|
#18+
Правильно так: Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2004, 12:43 |
|
как удалить из таблицы дублирующиеся строки?
|
|||
---|---|---|---|
#18+
Опять неправильно Код: plaintext 1. 2.
Прошу прощения, это из за расстройства от отсутствия джоинов ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2004, 12:44 |
|
как удалить из таблицы дублирующиеся строки?
|
|||
---|---|---|---|
#18+
"Разве наши слоны уже летают??? Значит летают! " Это я про "отсутствие джоинов" 8) Можно так. План наверняка будет красивее чем у варианта с подзапросом. SELECT t1.name FROM allobj t2 FULL JOIN allobj t1 ON t1.name = t2.name where a2.oid>a1.oid; ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2004, 14:37 |
|
как удалить из таблицы дублирующиеся строки?
|
|||
---|---|---|---|
#18+
2 Shweik Это я про "отсутствие джоинов" А показать? Между прочим я говорил не о селекте. :) А Ваш запрос я бы все таки попроще переписал, например так: Код: plaintext 1. 2. 3.
Правда я не понимаю как этот селект может помочь удалить дубликаты :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2004, 15:02 |
|
как удалить из таблицы дублирующиеся строки?
|
|||
---|---|---|---|
#18+
Угу -короче незнал да еще и забыл что delete не понимает joinoв. Сорри. И судя по обсуждению этот TODO будет выполнен в PG 8.0 8-\ http://momjian.postgresql.org/cgi-bin/pgtodo?delete Соответственно ничего получается только так: delete from allobj where oid in ( SELECT t1.oid FROM allobj t2 inner JOIN allobj t1 ON t1.name = t2.name and a2.oid>a1.oid); Впрочем планировщик и без явного join-a делает практически тоже самое 8) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2004, 15:52 |
|
как удалить из таблицы дублирующиеся строки?
|
|||
---|---|---|---|
#18+
Впрочем планировщик и без явного join-a делает практически тоже самое 8) Как нибудь выкрою время, посмотрю что там делает планировщик. :) впрочем это уже оффтоп :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2004, 16:38 |
|
|
start [/forum/topic.php?fid=53&fpage=357&tid=2007859]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
9ms |
get forum data: |
1ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 9ms |
total: | 151ms |
0 / 0 |