Вы можете упростить ваш запрос следующим образом:
DELETE FROM Table AS t
WHERE t.[Quality Score] <> (
SELECT Max([Quality Score])
FROM Table
WHERE [Email Adress] = t.[Email Adress]
);
Не нужно GROUP BY [Email Adress]
, но вам нужно предложение WHERE
. Или с помощью EXISTS
:
DELETE FROM Table AS t
WHERE EXISTS (
SELECT 1 FROM Table
WHERE [Email Adress] = t.[Email Adress] AND [Quality Score] > t.[Quality Score]
);
В случае дублирования результатов вы можете сохранить строку с самым высоким счетом и самым низким идентификатором, например:
DELETE FROM Table AS t
WHERE EXISTS (
SELECT 1 FROM Table
WHERE [Email Adress] = t.[Email Adress]
AND ([Quality Score] > t.[Quality Score] OR ([Quality Score] = t.[Quality Score] AND id < t.id))
);