У меня есть следующее MySQL утверждение, которое делает то, что я хочу:
SELECT scores.score, registrations.parade, AVG(scores.score) as result
FROM scores
JOIN registrations ON scores.registrationId=registrations.id
where registrations.parade=1
GROUP BY scores.registrationId
ORDER BY result DESC
в основном, с sqlalchemy, я думаю, я бы начал с:
db.session.query(Scores, func.avg(Scores.score).label('result'))
Это потому, что я не нужна информация из регистраций (она связана друг с другом в модели). Я присоединяюсь только к регистрациям в операторе MySQL, потому что мне нужно отфильтровать его parade.id
Ниже приведено то, что я пробовал до сих пор, но оно не работает:
scores = db.session.query(Scores,func.avg(Scores.score).label('result'))\
.filter(Registrations.parade == 1)\
.group_by(Scores.registrationId)\
.order_by(desc('result'))