【发布时间】:2018-01-28 06:23:20
【问题描述】:
我有一张这样的桌子
identifier date value
A 2017-01-01 2
A 2017-01-02 1
A 2017-01-03 7
B 2017-01-01 2
B 2017-01-02 7
B 2017-01-03 3
我正在尝试选择每个标识符的最大日期,例如:
identifier date value
A 2017-01-03 7
B 2017-01-03 3
谢谢
【问题讨论】:
-
这是一个非常常见的问题,并产生了自己的标签:greatest-n-per-group。试着搜索一下。解决方案可能有点特定于数据库,因此请至少提供该信息。
-
@IljaEverilä 我看到了,但是 sql alchemy 没有等价物(python 等价物)
-
我知道这是不真实的。例如,这是一个 Postgresql 解决方案:stackoverflow.com/questions/44069023/…,尽管它缺少标签。在 SQLA 中实现纯 SQL 解决方案也相当简单。
-
@IljaEverilä 不确定您在所指问题中看到的分组依据。我的 SQL 技能很差(完全公开),合并半相似的解决方案并使其工作并不总是那么容易
-
Nowhere 作为子句,因为它使用 Postgresql 特定的 DISTINCT ON ... ORDER BY 组合来有效地实现每组最大的 n。如果不熟悉术语,搜索 SQL 解决方案确实令人生畏。
标签: python sqlalchemy greatest-n-per-group