Ниже приведен имеющийся у меня запрос, который возвращает результаты, которые я хочу удалить из таблицы.

SELECT * from tableA
group by id
having count(*) > 5 

Как мне удалить записи, отображаемые в этом запросе? Я думал об использовании запроса DELETE.

DELETE from tableA
where 
(SELECT * from tableA
group by id
having count(*) > 5)

Но, похоже, это не работает.

sql
0
Data B 3 Май 2021 в 03:52

2 ответа

Лучший ответ

Вы можете использовать in:

delete from tableA
where id in (select id from tableA group by id having count(*) > 5)
2
Gordon Linoff 3 Май 2021 в 01:00

В такой ситуации вам, вероятно, нужно сделать что-то вроде этого:

DELETE from tableA
where [id] IN
(SELECT [id] from tableA
group by id
having count(*) > 5)
1
Craig 3 Май 2021 в 01:00