Zie het antwoord op de volgende link. Het lost je probleem op:
In principe kunt u niet dezelfde tabel verwijderen (wijzigen) die u in de SELECT gebruikt. Er zijn manieren om het te omzeilen, gedocumenteerd op die pagina.
Het volgende werkt door uw geneste select
. te maken een tijdelijke tabel.
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
)