如何在SQLAlchemy查询中使用平均和总和

我正在尝试从数据集中返回总计/平均值行,其中包含某些字段的SUM和其他字段的AVG。

我可以通过以下方式在SQL中执行此操作:

SELECT SUM(field1) as SumFld, AVG(field2) as AvgFld 

FROM Rating WHERE url=[url_string]

我将其转换为SQLAlchemy的尝试如下:

totals = Rating.query(func.avg(Rating.field2)).filter(Rating.url==url_string.netloc)

但这是错误的:

TypeError: 'BaseQuery' object is not callable

回答:

您应该使用类似:

from sqlalchemy.sql import func

session.query(func.avg(Rating.field2).label('average')).filter(Rating.url==url_string.netloc)

您不能MyObject.query在这里使用,因为SqlAlchemy试图找到一个将avg函数结果放入的字段,但是它失败了。

以上是 如何在SQLAlchemy查询中使用平均和总和 的全部内容, 来源链接: utcz.com/qa/431618.html

回到顶部