Is it possible to make edits or override the ORM\'s generated SQL with your own raw SQL? Or is the ORM expected to be flexible enough to build pretty much any query I could
The answer by @Abdou is the proper way to go, but you could also run your textual SQL using Query.from_statement():
session.query(AllocationStatus).\
from_statement(text("""
SELECT allocation_status.*
FROM allocation_status
LEFT JOIN allocation_status allocation_status2
ON allocation_status.allocation_id = allocation_status2.allocation_id
AND allocation_status.id < allocation_status2.id
WHERE allocation_status2.id IS NULL;""")).\
all()
Note the use of text().