flasksqlalchemy group\u by with max id

2024-10-03 05:28:59 发布

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

我有一张这样的桌子 enter image description here

现在我想得到ip是uniq,id是max的数据

In [53]: ModuleInfo.query.group_by(ModuleInfo.ip).all()
Out[53]:
[<ModuleInfo 1>,
 <ModuleInfo 5>,
 <ModuleInfo 14>,
 <ModuleInfo 16>,
 <ModuleInfo 20>,
 <ModuleInfo 17>,
 <ModuleInfo 28>,
 <ModuleInfo 27>]

retuan值不是max id,我想ip:127.0.0.1->;id:4,我使用order_by id,但它只是颠倒列表。在

当我尝试使用distinct时,我发现它不起作用:

^{pr2}$

Tags: 数据ingtipidbygroupall
1条回答
网友
1楼 · 发布于 2024-10-03 05:28:59

你可以试试这个:

from sqlalchemy import func
foo = Session.query(func.max(ModuleInfo.id),ModuleInfo.ip).\
    group_by(ModuleInfo.ip).order_by(ModuleInfo.ip).all()

我在这里使用了声明性的base和scoped Session来运行测试,但是想法是一样的。因此,您将收到一个元组列表,其中包含(max(id),ip)。在

汉努

相关问题 更多 >