Вы можете использовать подзапрос в delete
:
delete from t
where t.id in (select t2.id
from t t2
group by t2.id
having count(*) < 10
);
Если вы хотите удалить только строки в запросе select
, вы можете использовать оконные функции:
select t.*
from (select t.*, count(*) over (partition by id) as cnt
from t
) t
where cnt < 10