在SQLAlchemy中计算子查询中的avg

时间:2016-07-05 23:55:36

标签: python sqlalchemy subquery average

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))

为了计算需要应用限制的列的平均值,这两个查询有什么问题?

1 个答案:

答案 0 :(得分:3)

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

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