удалить дубликаты sql
Автор Astend Sanferion задал вопрос в разделе Другие языки и технологии
Написать SQL запрос для MS SQL server, удаление дубликатов и получил лучший ответ
Ответ от Ирина В[гуру]
ссылка
Ответ от Jurijus Zaksas[гуру]
Сверху решение от гуру MS SQL. Такой хитро... гм... закрученный синтаксис - это нечто, конечно.
Обычные люди:
1. Собирают уникальные данные во временную таблицу.
2. Очищают исходную таблицу используя нечто более эффективное, чем DELETE
3. Выключают индексы на исходной таблице
4. Копируют данные из временной таблицы назад.
5. Включают индексы на исходной таблице и пересчитывают их
6. Удаляют временную таблицу.
Для больших таблиц, кстати, этот метод может оказаться гораздо эффективнее того, что по ссыкле.
Сверху решение от гуру MS SQL. Такой хитро... гм... закрученный синтаксис - это нечто, конечно.
Обычные люди:
1. Собирают уникальные данные во временную таблицу.
2. Очищают исходную таблицу используя нечто более эффективное, чем DELETE
3. Выключают индексы на исходной таблице
4. Копируют данные из временной таблицы назад.
5. Включают индексы на исходной таблице и пересчитывают их
6. Удаляют временную таблицу.
Для больших таблиц, кстати, этот метод может оказаться гораздо эффективнее того, что по ссыкле.
Ответ от Globe[гуру]
Может, попробовать так:
DELETE FROM A1
WHERE a.id+cast(a.data as varchar(10)) in
(
SELECT a.id+cast(a.data as varchar(10))
FROM A1 a
LEFT JOIN (
SELECT id, max(data) as data FROM A1 GROUP BY id
) b ON a.id = b.id and a.data = b.data
WHERE b.id is null
)
Может, попробовать так:
DELETE FROM A1
WHERE a.id+cast(a.data as varchar(10)) in
(
SELECT a.id+cast(a.data as varchar(10))
FROM A1 a
LEFT JOIN (
SELECT id, max(data) as data FROM A1 GROUP BY id
) b ON a.id = b.id and a.data = b.data
WHERE b.id is null
)
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Написать SQL запрос для MS SQL server, удаление дубликатов
Как работают операторы DISTINCT и ALL в SQL?
как положено так и работают
select distinct ...from ...-из результата будут удалены
подробнее...
SQL запрос - Удалить дубликаты строк из таблицы (firebird)
например так
delete from ДИСК where КОД not in (
select min(КОД) from ДИСК group by
подробнее...
Как удалить дубликаты строк SQL
CREATE TABLE `tablica_2` (
`id` int(11) NOT NULL DEFAULT '0',
`pole` text NOT NULL
)
подробнее...