Полагаю, столбец id
, если первичный ключ.Таким образом, будет не более 1 записи для каждого идентификатора.Кроме того, не будет более 2 записей с одинаковым именем.
Прежде всего, вам необходимо определить дублированные записи (2 записи с одинаковым именем).
Это можно сделать так:this:
SELECT Name,
COUNT(*)
FROM Table1
GROUP BY Name
HAVING COUNT(*) = 2
Затем получите для каждой пары по одному с наименьшим идентификатором (внутренний запрос тот, который я показал выше):
SELECT Name,
MIN(id) AS min_id
FROM Table1
WHERE Name IN (SELECT Name
FROM (SELECT Name,
COUNT(*)
FROM Table1
GROUP BY Name
HAVING COUNT(*) = 2
)
)
GROUP BY Name
Наконец, удалите нужные записи:
DELETE
FROM Table1
WHERE id IN (SELECT min_id
FROM (SELECT Name,
MIN(id) AS min_id
FROM Table1
WHERE Name IN (SELECT Name
FROM (SELECT Name,
COUNT(*)
FROM Table1
GROUP BY Name
HAVING COUNT(*) = 2
)
)
GROUP BY Name
)
)