РЕДАКТИРОВАТЬ: я думаю, что теперь у меня есть решение, но мне нужно еще немного проверить смысл...
DELETE TBLFIRE_TEMP3 FROM TBLFIRE_TEMP3
LEFT OUTER JOIN (
SELECT MIN(FireNo) as FireNo, ActionRef, FRADate, FIREUPRN
FROM TBLFIRE_TEMP3
GROUP BY ActionRef, FRADate, FIREUPRN
) as KeepRows ON
TBLFIRE_TEMP3.FireNo = KeepRows.FireNo
WHERE
KeepRows.FireNo IS NULL
-############### Предыдущие комментарии ################
У меня есть таблица, в которой есть дубликаты (на основе трех столбцов). Я могу найти их и увидеть, выполнив следующие действия, а затем просто захочу удалить дубликаты (т. Е. Таким образом, все результаты count (*) равны «1»)
SELECT COUNT(*),ActionRef, FRADate, FIREUPRN
FROM TBLTempTable
GROUP BY ActionRef, FRADate, FIREUPRN
Так что я могу видеть, сколько раз встречаются эти группы. Что я хочу сделать, так это удалить дубликаты. Я пробовал следующее, но он удаляет каждую строку, даже в единственном числе:
DELETE a FROM TblTempTable a JOIN
(
SELECT ActionRef, FRADate, FIREUPRN
FROM TblTempTable
GROUP BY ActionRef, FRADate, FIREUPRN
) d
ON (a.ActionRef = b.ActionRef
AND a.FRADate = b.FRADate
AND a.FIREUPRN = b.FIREUPRN)
Основываясь на кодах, которые я просмотрел в руководстве, я считаю, что я близок, но в настоящее время он удаляет все.
Ссылки: SQL- Как удалить повторяющиеся строки? GROUP BY не удаляет дубликаты
-Это MySQL, поэтому в конце концов это не актуально:
выбирать и удалять строки в группах с помощью mysql Поиск повторяющихся записей в MySQL