Consulta de filtro SQLAlchemy por objeto relacionado
UsandoSQLAlchemy, Tenho uma relação para muitas com duas tabelas - usuários e pontuações. Estou tentando consultar os 10 principais usuários classificados por sua pontuação agregada nos últimos X dias.
users:
id
user_name
score
scores:
user
score_amount
created
Minha consulta atual é:
top_users = DBSession.query(User).options(eagerload('scores')).filter_by(User.scores.created > somedate).order_by(func.sum(User.scores).desc()).all()
Eu sei que isso claramente não é correto, é apenas o meu melhor palpite. No entanto, depois de olhar a documentação e googling não consigo encontrar uma resposta.
EDIT: Talvez ajudaria se eu esbocei o que oMySQL consulta ficaria assim:
SELECT user.*, SUM(scores.amount) as score_increase
FROM user LEFT JOIN scores ON scores.user_id = user.user_id
WITH scores.created_at > someday
ORDER BY score_increase DESC