Выберите ID
строки, которую вы выбираете только, затем поставьте DELETE
, которая удалит все строки с этими выбранными ID
.
DELETE FROM User u
WHERE u.ID IN
(
SELECT u.ID
FROM User u
INNER JOIN
(
SELECT u.ID
FROM User
GROUP BY age, sex
HAVING COUNT(*) > 1
) temp
ON temp.age = u.age
AND temp.sex = u.sex
ORDER BY age, sex
)
Но я должен сообщить вам, что выследует изменить ваш запрос, так как он будет стирать все.Ваш оператор выбора такой же, как и SELECT * FROM User
, как и все, если внутреннее соединение.Я думаю, что вы действительно хотите:
DELETE FROM User u
WHERE u.ID IN
(
SELECT u.ID
FROM User
GROUP BY age, sex
HAVING COUNT(*) > 1
)