【问题标题】:SQLAlchemy subquery - average of sumsSQLAlchemy 子查询 - 总和的平均值
【发布时间】: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);

谢谢

【问题讨论】:

    标签: python sqlalchemy


    【解决方案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?不知道效果如何
    • @Guido sums 是子查询对象,而不是映射类。它通过ccolumns 属性公开其可用列。
    猜你喜欢
    • 1970-01-01
    • 2010-12-07
    • 2020-11-03
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多