`sum`、`average`、`min`、`max` 的 sqlalchemy 简单示例
Posted
技术标签:
【中文标题】`sum`、`average`、`min`、`max` 的 sqlalchemy 简单示例【英文标题】:sqlalchemy simple example of `sum`, `average`, `min`, `max` 【发布时间】:2012-08-06 15:10:41 【问题描述】:对于sqlalchemy,谁能温柔地给出SQL
函数的简单示例,例如sum
、average
、min
、max
,用于列(score
在以下为例)。
至于这个映射器:
class Score(Base):
#...
name = Column(String)
score= Column(Integer)
#...
【问题讨论】:
【参考方案1】:有关用法,请参阅SQL Expression Language Tutorial。下面的代码展示了用法:
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
【讨论】:
这是否与 SQL 不同,正确处理空集的求和,即返回0
而不是 NULL
?
它使用各自的 SQL
函数以及它们的所有优点和缺点。
可惜了。像this 这样的东西应该可以工作。
链接已损坏。最新:docs.sqlalchemy.org/en/latest/core/tutorial.html
SQLAlchemy 文档中的一些很好的例子展示了如何更好地控制生成 SQL:docs.sqlalchemy.org/en/latest/orm/tutorial.html#counting【参考方案2】:
来自SQLAlchemy docs,对于sum
方法,我们需要使用functions.sum()
。如我们所见:
from sqlalchemy.sql import functions
result = session.query(
functions.sum(Model.value_a + Model.value_b)
).scalar()
这将产生一个类似的 sql:
SELECT sum(public.model.value_a + public.model.value_b) AS sum_1 ...
【讨论】:
以上是关于`sum`、`average`、`min`、`max` 的 sqlalchemy 简单示例的主要内容,如果未能解决你的问题,请参考以下文章
AR模型MA(Moving Average)模型ARMA模型时间序列的定阶ARIMASARIMAX
(转)滑动平均法滑动平均模型算法(Moving average,MA)
LeetCode 813. Largest Sum of Averages