在SQLAlchemy中使用where筛选器获取列的最大值

在SQLAlchemy中使用where筛选器获取列的最大值,sqlalchemy,flask-sqlalchemy,Sqlalchemy,Flask Sqlalchemy,我试图得到: 从baz=somevalue的条形图中选择最大值(foo)作为值 与sqlalchemy相当,目前正在试用: counter=db_session.query(func.max(ProductDefect.defectorderno)).scalar() 这给了我一个值,但我不能找到一种方法来使用where条件 counter = ProductDefect.query(func.max(ProductDefect.defectorderno).filter_by(producti

我试图得到:

从baz=somevalue的条形图中选择最大值(foo)作为值

与sqlalchemy相当,目前正在试用:

counter=db_session.query(func.max(ProductDefect.defectorderno)).scalar()

这给了我一个值,但我不能找到一种方法来使用where条件

counter = ProductDefect.query(func.max(ProductDefect.defectorderno).filter_by(productid=activeproduct.productid)

这给了我一个语法错误。正确用法是什么?

缺少括号/括号放错了?试试:
counter=ProductDefect.query(func.max(ProductDefect.defectorderno.label(“value”))).filter(ProductDefect.productid==activeproduct.productid)
这一个也给了我一个语法错误。请发布生成的
SQL
语句,如果在
create\u引擎(…)中启用
echo=True
,您可以看到它
将查询修改为counter=ProductDefect.query(func.max(ProductDefect.defectorderno)).filter_by(productid=activeproduct.productid)应该可以工作