Сортировка по столбцу в объединенном запросе в SqlAlchemy SQLite

Как объясняется в этом вопросе , вы можете использовать строковые литералы для order by в union s.

Например, это работает с Oracle:

 querypart1 = select([t1.c.col1.label("a")]).order_by(t1.c.col1).limit(limit) querypart2 = select([t2.c.col2.label("a")]).order_by(t2.c.col2).limit(limit) query = querypart1.union_all(querypart2).order_by("a").limit(limit) 

Порядковый порядок может принимать строковый литерал, который является именем столбца в результате объединения.

(В секционированных таблицах есть gazillions строк, и я пытаюсь разбивать проклятые вещи)

Однако при работе с SQLite3 это генерирует исключение:

 sqlalchemy.exc.OperationalError: (OperationalError) near "ORDER": syntax error 

Как вы можете order by результатам union ?

    One Solution collect form web for “Сортировка по столбцу в объединенном запросе в SqlAlchemy SQLite”

    Запросы, которые являются частью запроса объединения, не должны сортироваться.

    Чтобы иметь возможность использовать лимиты внутри сложного запроса, вы должны обернуть отдельные запросы в отдельный подзапрос:

     SELECT * FROM (SELECT ... LIMIT ...) UNION ALL SELECT * FROM (SELECT ... LIMIT ...) 
     q1 = select(...).limit(...).subquery() q2 = select(...).limit(...).subquery() query = q1.union_all(q2)... 
    Python - лучший язык программирования в мире.