sqlalchemy简称`sum`,`average`,`min`,`max`的例子

And*_*510 26 python sql sqlalchemy

对于SQLAlchemy的,谁可以轻轻地得到的简单的例子SQL类似功能sum,average,min,max,对于一个柱(score在作为示例的以下).

至于这个映射器:

class Score(Base):
    #...
    name = Column(String)
    score= Column(Integer)
    #...
Run Code Online (Sandbox Code Playgroud)

van*_*van 47

有关用法,请参阅SQL表达式语言教程.下面的代码显示了用法:

from sqlalchemy.sql import func
qry = session.query(func.max(Score.score).label("max_score"), 
                    func.sum(Score.score).label("total_score"),
                    )
qry = qry.group_by(Score.name)
for _res in qry.all():
    print _res
Run Code Online (Sandbox Code Playgroud)

  • 与 SQL 不同,这是否可以正确处理对空集求和,即返回“0”而不是“NULL”? (2认同)
  • 链接坏了。最新:http://docs.sqlalchemy.org/en/latest/core/tutorial.html (2认同)

小智 5

SQLAlchemy 文档中,对于sum方法,我们需要使用functions.sum(). 我们可以看到:

from sqlalchemy.sql import functions

result = session.query(
    functions.sum(Model.value_a + Model.value_b)
).scalar()
Run Code Online (Sandbox Code Playgroud)

这将产生如下 sql:

SELECT sum(public.model.value_a + public.model.value_b) AS sum_1 ...
Run Code Online (Sandbox Code Playgroud)