Проблема заключается в том, что псевдонимы столбцов, введенные в список выбора, нельзя использовать в предложениях GROUP BY и ORDER BY.Вы также ссылаетесь на псевдоним таблицы 'b', который отсутствует в предложении FROM.
SELECT COUNT(DISTINCT c.BAND_ID) Number_of_bands,
COUNT(DISTINCT c.COMP_ID) "Total_Competitions",
g.NAME GENRE_TYPE
FROM ENTERED_COMPS ec
JOIN COMPETITIONS c ON c.COMP_ID = ec.COMP_ID
JOIN GENRE g ON g.GENRE_ID = c.GENRE_ID
JOIN BAND b ON c.BAND_ID = b.BAND_ID
GROUP BY g.NAME
ORDER BY g.NAME ASC;
Некоторые варианты SQL допускают использование псевдонимов в предложении ORDER BY;некоторые могут позволить им более широко.Это источник путаницы.(Некоторые СУБД следуют стандарту SQL и допускают AS между именами таблиц и псевдонимами; Oracle - нет.)
Пожалуйста, обсудите со своим преподавателем, почему вас учили архаичной неявной нотации объединения;Вы должны изучать его только для того, чтобы понять старый SQL, который вы не меняете, а не для того, чтобы писать новый SQL.Вы должны всегда использовать явную запись соединения (как показано выше) в новых операторах SQL.