sqlalchemy - 对查询中的字段求和

标签 sqlalchemy func

这应该是一个预先提出的问题,我进行了搜索,但找不到任何答案。对不起,如果它是重复的。我有一个查询可以说:

my_query=session.query(Item).filter(somefilter)

现在,Item 有一列,比方说 counter ,我想找到 my_query 的这一列的总和.
我可以这样做:
sum=0
for row in query:
    sum+=row.counter

但我不认为这是在大型数据库中执行此操作的有效方法。我知道这是可能的:sqlalchemy simple example of `sum`, `average`, `min`, `max` ,但这需要过滤 qry (从页面借来的)我已经给出了过滤版本my_query .我不知道在qry之上再次进行过滤是否真的更有效诉在 my_query 上使用 for 循环.

最佳答案

我有同样的问题。我在 irc.freenode.org#sqlalchemy 上问过,inklesspen 把我指向了 Query#with_entities() .

sum = my_query.with_entities(func.sum(Item.counter)).scalar()

关于sqlalchemy - 对查询中的字段求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14351099/

相关文章:

swift - 每次调用时使用 func 来替代任务 a 或 b

javascript - JS/ANGULAR 使用 var 的值作为另一个对象的键

asp.net-mvc - 带参数编译的 Lambda 表达式

python - SQLAlchemy 中的 Session 和 db.session 有什么区别?

python - 提高 SQLAlchemy 的性能?

python - 如何将 SQLAlchemy TIMESTAMP 列只读缓冲区转换为日期时间?

c# - 如何声明返回相同类型的 Func Delegate 的 Func Delegate?

c# - 使用 Func<>(或 Action<>)或创建自己的委托(delegate)?

python - 将列插入我数据库中的所有表

python - 将 Teradata 查询读入 Pandas