Se venligst svaret på følgende link. Det vil løse dit problem:
Som udgangspunkt kan du ikke slette fra (ændre) den samme tabel, som du bruger i SELECT. Der er måder at undgå det på, dokumenteret på den side.
Det følgende fungerer ved at gøre din indlejrede select
et vikarbord.
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
)