值为空的列上的SQLAlchemy最大值。

2024-03-29 07:50:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份价值清单。我试图找到每个ID的最大值。其中Null是所有值的最大值。在

ID   DATE     

1     '2013-01-26'
1     NULL
1     '2013-03-03'      
2     '2013-02-23'      
2     '2013-04-12'      
2     '2013-05-02'   

我想要这个

^{pr2}$

我知道如何在mysql中实现。通过这样做

select ID, max(IFNULL(DATE,'3000-01-01'))
from test
group by ID

我想找到这个的sqlalchemy版本。在

这将假定Null为最小值

db_session.query(test, func.max(test.DATE)).group_by(test.ID).all()

Tags: fromtestiddatebysqlalchemymysqlgroup
1条回答
网友
1楼 · 发布于 2024-03-29 07:50:12

这很简单:

from datetime import date


# your query
res = session.query(
    Test,
    func.max(func.ifnull(Test.date, date(3000, 1, 1)))
).group_by(Test.id).all()

注意:您也可以使用COALESCECOALESCE是标准sql的一部分,它受到大量数据库的支持。 使用COALESCE的查询示例:

^{pr2}$

相关问题 更多 >