Die Antwort finden Sie unter folgendem Link. Es wird Ihr Problem lösen:
Grundsätzlich können Sie nicht aus derselben Tabelle löschen (verändern), die Sie in SELECT verwenden. Es gibt Möglichkeiten, dies zu umgehen, die auf dieser Seite dokumentiert sind.
Das Folgende funktioniert, indem Sie Ihren verschachtelten select
machen eine temporäre Tabelle.
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
)