Python 在SQLAlchemy中计算子查询中的平均值 points=Session.query(TeamMatchStats)\ .join(TeamMatchStats.match)\ .加入(比赛.联盟)\ .filter(League.season==self.season)\ .filter(TeamMatchStats.team==团队)\ .filter(Match.date

Python 在SQLAlchemy中计算子查询中的平均值 points=Session.query(TeamMatchStats)\ .join(TeamMatchStats.match)\ .加入(比赛.联盟)\ .filter(League.season==self.season)\ .filter(TeamMatchStats.team==团队)\ .filter(Match.date,python,sqlalchemy,subquery,average,Python,Sqlalchemy,Subquery,Average,avg必须与列一起使用。SQLAlchemy中的子查询是可选择的核心,因此必须使用.c访问列。这里我假设TeamMatchStats有一个points列: points = Session.query(TeamMatchStats) \ .join(TeamMatchStats.match) \ .join(Match.league) \ .filter(League.season == self.season) \ .filter(TeamMatchStats.

avg
必须与列一起使用。SQLAlchemy中的子查询是可选择的核心,因此必须使用
.c
访问列。这里我假设
TeamMatchStats
有一个points列:

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中的子查询是可选择的核心,因此必须使用
.c
访问列。这里我假设
TeamMatchStats
有一个points列:

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
应用于列,而不是表。
avg
应用于列,而不是表。