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