2016-07-05 105 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)) 

爲了計算需要應用限制的列的平均值,這兩個查詢有什麼問題?在SQLAlchemy中計算子查詢中的平均值

+0

'avg'應用於列而不是表。 – univerio

回答

3

avg必須與列一起使用。 SQLAlchemy中的子查詢是可選核心,因此您必須使用.c來訪問列。這裏我假設TeamMatchStats有一個點列:

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