Я не знаю ваших данных или точной логики, но я могу предложить использовать WHERE NOT IN
логику с подзапросом вместо <>
:
DELETE
FROM tests
WHERE
e2e_product_id = 410 AND
test_name = 'PWBAR-FullBalance-Auth-TC1' AND
test_id NOT IN (
SELECT MAX_TEST_ID
FROM (
SELECT MAX(test_id) MAX_TEST_ID
FROM tests
WHERE e2e_product_id = 410
GROUP BY test_name
HAVING COUNT(*) > 1
) t
);
Это позволит обойти подзапрос, возвращающий болееодна ошибка результата.Как правило, ваш подзапрос будет возвращать одно максимальное значение для каждого теста.Итак, если ваша логика заключается в том, что вы не хотите, чтобы test_id
соответствовала любой группе, приведенная выше логика должна быть правильной.