SQLAlchemy 子查询 - 总和的平均值
Posted
技术标签:
【中文标题】SQLAlchemy 子查询 - 总和的平均值【英文标题】:SQLAlchemy subquery - average of sums 【发布时间】:2010-02-16 13:21:39 【问题描述】:有没有什么方法可以在 SQLAlchemy ORM 中编写如下 SQL 语句:
SELECT AVG(a1) FROM (SELECT sum(irterm.n) AS a1 FROM irterm GROUP BY irterm.item_id);
谢谢
【问题讨论】:
【参考方案1】:sums = session.query(func.sum(Irterm.n).label('a1')).group_by(Irterm.item_id).subquery()
average = session.query(func.avg(sums.c.a1)).scalar()
【讨论】:
你为什么在查询 sums.c.a1 中写而不是 sums.a1?不知道效果如何 @Guidosums
是子查询对象,而不是映射类。它通过c
和columns
属性公开其可用列。以上是关于SQLAlchemy 子查询 - 总和的平均值的主要内容,如果未能解决你的问题,请参考以下文章