Im SQL-Standard müssen Bezeichner in doppelte Anführungszeichen eingeschlossen werden (" ). Und die Oracle-Datenbank entspricht dort dem Standard.
Einfache Anführungszeichen (' ) sind für Zeichenkonstanten z.B. wie im semester='Spring' , können sie nicht für Bezeichner wie Spaltennamen, Tabellennamen oder einen Spaltenalias verwendet werden.
Sie müssen also verwenden:
classes.limit-classes.class_size as "seats_available"
Sie brauchen die doppelten Anführungszeichen aber eigentlich nicht, da Ihr Bezeichner keine ungültigen Zeichen enthält, also
classes.limit-classes.class_size as seats_available
wird genauso gut funktionieren
Unabhängig, aber:Zahlen sollten nicht sein in einfache Anführungszeichen gesetzt werden 2017 ist eine Zahlenkonstante, '2017' ist eine Stringkonstante. Sie sollten also where year = 2017 verwenden stattdessen