Odpověď naleznete na následujícím odkazu. Vyřeší to váš problém:
V zásadě nemůžete smazat (upravit) stejnou tabulku, jakou používáte v SELECTu. Na této stránce jsou zdokumentovány způsoby, jak to obejít.
Následující bude fungovat tak, že vaše vnořené select
dočasnou tabulku.
delete from TAB
where CourseName not in (select temp.CourseName
from (select t.CourseName
from TAB t
group by t.CourseName
having count(t.CourseName) > 100
) as temp
)