如何在sqlalchemy混合函数中使用postgres方言计算最大值

时间:2021-07-16 18:54:04

标签: postgresql sqlalchemy

我定义了一个混合属性:

@hybrid_property
def result(self):
    return max(0, self.impact - self.protection)

@result.expression
def result(cls):
    return func.max(0, cls.impact - cls.protection)

然而 Postgres max 函数只对列进行操作,不像例如sqlite 所以表达式不起作用。有什么我可以在 Column elements or expressions 中使用的东西,或者我可以通过其他方式将我的值限制在 0 的下限?

1 个答案:

答案 0 :(得分:1)

您似乎在使用名为“max”的 python 函数,而不是 PostgreSQL 函数。

如果这是 postgresql,那么 max 用于行上的聚合。 greatest 用于多参数。

greatest(thing1,thing2)
相关问题