我试图从我的数据集中返回一个totals/averages行,其中包含某些字段的和和和其他字段的平均值。
我可以在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
这不是真的。
func.avg(Rating.field2).label('average')
返回一个Column
对象(与给定的精确类型对象相同)。所以您可以将它与查询对象的with_entities
方法一起使用。以下是您的示例:
你应该使用这样的东西:
这里不能使用
MyObject.query
,因为SqlAlchemy试图找到一个字段来将avg
函数的结果放入其中,但失败了。相关问题 更多 >
编程相关推荐