2016-07-05 1 views
0
points = Session.query(TeamMatchStats) \ 
    .join(TeamMatchStats.match) \ 
    .join(Match.league) \ 
    .filter(League.season == self.season) \ 
    .filter(TeamMatchStats.team == team) \ 
    .filter(Match.date <= date).limit(7).subquery() 

points = Session.query(func.avg(points)) 

Что не так с этими двумя запросами, чтобы рассчитать среднюю колонку, для которой требуется ограничение?Вычислить avg в подзапросе в SQLAlchemy

+0

'avg' применяется к столбцу, а не к таблице. – univerio

ответ

3

avg должен использоваться с колонкой. Подзапрос в SQLAlchemy является основным выбором, поэтому для доступа к столбцам вы должны использовать .c. Здесь я предполагаю, что TeamMatchStats имеет пункт:

points = Session.query(func.avg(points.c.points))