In de SQL-standaard moeten identifiers tussen dubbele aanhalingstekens staan (" ). En daar voldoet de Oracle-database aan de norm.
Enkele aanhalingstekens (' ) zijn voor karakterconstanten, b.v. zoals je deed in semester='Spring' , kunnen ze niet worden gebruikt voor identifiers zoals kolomnamen, tabelnamen of een kolomalias.
Dus je moet gebruiken:
classes.limit-classes.class_size as "seats_available"
Je hebt de dubbele aanhalingstekens echter niet echt nodig, omdat je identifier geen ongeldige tekens bevat, dus
classes.limit-classes.class_size as seats_available
werkt net zo goed
Niet gerelateerd, maar:getallen mogen niet tussen enkele aanhalingstekens worden geplaatst 2017 is een getalconstante, '2017' is een stringconstante. Gebruik dus where year = 2017 in plaats daarvan