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

Вниз

помогите сделать sql запрос   Найти похожие ветки 

 
diww   (2002-09-25 15:38) [0]

как выбрать повторяющиеся записи из бд (т.е. те записи, значения по полям field1 ... fieldN совпадают)?


 
Johnmen ©   (2002-09-25 15:46) [1]

SELECT field1, ... fieldN FROM Table
GROUP BY field1, ... fieldN
HAVING COUNT(*)>1


 
diww   (2002-09-25 15:50) [2]

работает....
большое спасибо


 
diww   (2002-09-25 17:20) [3]

а как еще и удалить повторяющиеся записи, т.е. если запись в бд встречалась несколько раз, то чтобы эта запись осталась в единственном экземпляре?


 
Johnmen ©   (2002-09-25 17:28) [4]

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


 
Sedunov Vitaly   (2002-09-25 17:29) [5]

А вот насчет удаления придется свою программу писать. Наверняка же таблицы связаны. Например, двойные клиенты в справочнике клиентов и их заказы, которые надо объединить. Делается так: выбираешь максимальный ИД клиента среди одинаковых, делаешь так, чтобы все заказы были на двойнике с максимальным ИД, остальных удаляешь.


 
Виталий Панасенко   (2002-09-25 18:58) [6]

Удалить можно так:
delete from tbl1 t1
where 1<(select count(*) from tbl1 t2 where t1.field1=t2.field1 and t1.field2=t2.field2 and ... and t1.fieldN=t2.fieldN)


 
Johnmen ©   (2002-09-25 20:14) [7]

>Виталий Панасенко (25.09.02 18:58)

А повнимательней прочитать diww (25.09.02 17:20) ???
>>>чтобы эта запись осталась в единственном экземпляре?

А ты квасишь все экземпляры !


 
Виталий Панасенко   (2002-09-26 08:32) [8]

>Johnmen
А ты попробуй, выполни и увидиш, что останется ОДИН экземпляр. Я так делал и все работает. Ведь подзапрос выполняется для КАЖДОЙ записи и если count(*)=1, то условие не выполняется и запись остается. Единственное, что при значениие полей NULL запрос чуть меняется



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

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

Наверх




Память: 0.48 MB
Время: 0.022 c
4-56410
Константин
2002-08-30 08:25
2002.10.17
Кликнуть курсором мыши по чужому приложению. HELP!!!


7-56388
2UT
2002-08-07 12:45
2002.10.17
И снова о СОМ - портах (скорость выше 115200 ???)


3-56007
Vikuksa
2002-09-20 15:22
2002.10.17
Кошмар


1-56177
Игорь
2002-10-07 14:49
2002.10.17
Вот такая мистика


14-56281
RomychK
2002-09-18 15:07
2002.10.17
Фаерволы и @Guard,....