Как вы уже сказали, в вашем запросе есть функции, которые не поддерживаются в sqlite (например, "pow").Использование функций выражений SA для построения вашего запроса не поможет вам в этом случае, так как результирующий запрос будет по-прежнему содержать функцию «pow», которую sqlite не поддерживает.
Конечно, кроме того факта, что sqlite являетсяОчень простой в использовании с новым проектом, ничто не мешает вам использовать другой тип базы данных при разработке, и в этом случае вам может понадобиться.
Если вы все равно хотите покопаться в функциях,взгляните на ваш запрос будет выглядеть примерно так (Внимание: непроверенный код):
sum_result = func.sum(Vote.score) - 1
time_difference_result = func.pow(func.timestampdiff(text('HOUR'), Post.time_submitted, func.current_timestamp()) + func.interval(2, text('HOUR')), 1.8)
time_difference_result = func.timestampdiff(text('HOUR'), Post.time_submitted, func.now()) + func.interval(2, text('HOUR'))
vote_calculation = (sum_result / time_difference_result).label('vote_calculation')
session.query(Post.id, Post.title, vote_calculation)\
.join(Vote)\
.group_by(Post.id, Post.title)\
.order_by('vote_calculation DESC')[:100]