SQLAlchemy子查询 - 总和的平均值

hon*_*zas 19 python sqlalchemy

有没有办法在SQLAlchemy ORM中编写以下SQL语句:

SELECT AVG(a1) FROM (SELECT sum(irterm.n) AS a1 FROM irterm GROUP BY irterm.item_id);
Run Code Online (Sandbox Code Playgroud)

谢谢

Ant*_*sma 29

sums = session.query(func.sum(Irterm.n).label('a1')).group_by(Irterm.item_id).subquery()
average = session.query(func.avg(sums.c.a1)).scalar()
Run Code Online (Sandbox Code Playgroud)

  • @Guido `sums` 是一个子查询对象,而不是映射类。它通过“c”和“columns”属性公开其可用列。 (2认同)