sqlalchemy: 从表中获取最大/最小/平均值

41 投票
2 回答
73975 浏览
提问于 2025-04-17 00:00

我有一个查询:

mps =   (
            session.query(mps)  .filter_by(idc = int(c.idc))
                                .filter_by(idmp = int(m.idmp))
                                .group_by(func.day(mps.tschecked))
        ).all()

我的问题是,我不知道怎么用sqlalchemy从一个表里提取最大值、最小值和平均值……

我找到了这个:在SQLAlchemy中独立于数据库的MAX()函数

但是我不知道该在哪里使用这个func.max/min/avg……

有人能告诉我怎么做吗?能给我一个例子吗?

2 个回答

-21

或者直接用 order_by() 方法,然后选择第一个或最后一个元素……

56

以下是可以通过 from sqlalchemy import func 使用的函数:

  • func.min - 用来找出最小值
  • func.max - 用来找出最大值
  • func.avg - 用来计算平均值

你可以在 这里 查看相关文档。

你可以在查询方法 query() 中使用这些函数。

示例:

session.query(self.stats.c.ID, func.max(self.stats.c.STA_DATE))

(就像在普通的 SQL 中使用聚合函数一样)

撰写回答