Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];

Вниз

Удаление повторяющихся записей в таблице   Найти похожие ветки 

 
kol   (2003-04-23 16:07) [0]

В таблице есть 2 поля комбинация которых должна быть уникальной. Нужно стереть записи в которых эта комбинация повторяется. но про этом из повторяющихся записей одна должна остаться в базе.


 
Reindeer Moss Eater   (2003-04-23 16:12) [1]

Класс TDataSet, метод Delete


 
Жук   (2003-04-23 16:42) [2]

delete from tabl t1
where (select count(t2.id1) from tabl t2 where t2.id1=t1.id1 and t2.id2=t1.id2)>1


 
Reindeer Moss Eater   (2003-04-23 16:49) [3]

Неправильно


 
Жук   (2003-04-23 16:51) [4]


> Reindeer Moss Eater (23.04.03 16:49)
> Неправильно

Это вы мне ? :-)


 
Reindeer Moss Eater   (2003-04-23 16:52) [5]

Ага


 
Жук   (2003-04-23 16:52) [6]

А конкретнее ?


 
Reindeer Moss Eater   (2003-04-23 16:58) [7]

Автор говорит про два поля.
Оба поля - не первичные ключи и их комбинация тоже не PK.
Тольуо этими полями нельзя однозначно определить записи для удаления


 
Johnmen   (2003-04-23 17:01) [8]

Не надо спорить...:)
Пока автор не указал БД.


 
Карелин Артем   (2003-04-23 17:02) [9]

Жук © (23.04.03 16:52)
И сколько же записей останется после удаления? По-моему 0. И таблица вроде как одна.


 
VAleksey   (2003-04-23 17:07) [10]

SELECT DISTINCT
А все остальное на фиг любым способом :-)


 
NAlexey   (2003-04-23 17:09) [11]

А так будет работать?

SELECT
FIELD1,
FIELD2,
FIELD3
FROM
TABLE_NAME

GROUP BY
FIELD1,
FIELD2,
FIELD3
HAVING count(*) > 1


 
Карелин Артем   (2003-04-23 17:10) [12]

VAleksey © (23.04.03 17:07)
Или результат этого перебросить в другую таблицу и ей заменить старую.


 
NAlexey   (2003-04-23 17:15) [13]

А вот примерчик и с удалением:

SELECT
FIELD1,
FIELD2
FIELD3

INTO
#tmp
FROM
TABLE_NAME

GROUP BY
FIELD1,
FIELD2,
FIELD3
HAVING count(*) > 1

delete
TABLE_NAME
FROM
TABLE_NAME tt
WHERE exists (
SELECT
*
FROM
#tmp t
WHERE
tt.FIELD1 = t.FIELD1 and
tt.FIELD2 = t.FIELD2 and
tt.FIELD3 = t.FIELD3
)

INSERT INTO TABLE_NAME SELECT * FROM #tmp
drop table #tmp


 
kravchuk   (2003-04-23 17:34) [14]

думаю можно так

delete from our_table t1
where exists
(
select t2.id
from our_table t2
where t1.field1=t2.field1
and t1.field2=t2.field2
and t1.id<>t2.id
)

id - это первичный ключ


 
NDeu   (2003-04-23 17:45) [15]

http://www.ibase.ru/devinfo/deldupes.htm



 
Карелин Артем   (2003-04-23 17:52) [16]

Народ, а ведь автор не упомянал о второй таблице.


 
Reindeer Moss Eater   (2003-04-24 09:08) [17]

А кто здесь упомянул о второй таблице?


 
Жук   (2003-04-24 09:15) [18]


> Карелин Артем © (23.04.03 17:02)
> И сколько же записей останется после удаления? По-моему
> 0. И таблица вроде как одна.

Таблица одна. Записей, удовлетворяющих условию, останется одна.


 
NAlexey   (2003-04-24 10:08) [19]

>А кто здесь упомянул о второй таблице?
Да собственно, а кто?


 
Reindeer Moss Eater   (2003-04-24 10:09) [20]

Заблуждение



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

Форум: "Базы";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
14-46964
processor
2003-04-26 23:00
2003.05.15
Есть ли отличие процессоров AMD и Intel?


14-46956
VEG
2003-04-26 18:58
2003.05.15
Морковка едет на учебе и игнорирует!


14-46932
alxx
2003-04-23 10:35
2003.05.15
А кто чем формулы оформляет в документах?


14-46915
Шурыгин Евгений
2003-04-22 17:38
2003.05.15
Как создать переводчик типа сократа 97?


14-46913
arestotel
2003-03-23 03:27
2003.05.15
derectx





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский