【发布时间】:2015-11-17 16:53:37
【问题描述】:
我有一个表格,例如,包含以下数据:
id | value | name | date
1 | 1 | 'one' | 2015-01-02
2 | 1 | 'two' | 2015-02-03
3 | 2 | 'three'| 2014-01-03
4 | 2 | 'four' | 2014-01-02
对于每个不同的值,我想要具有最新日期的行的名称。所以:
value | name | date
1 | 'two' | 2015-02-03
2 | 'three'| 2014-01-03
我目前有这个查询:SELECT value, MAX(date) FROM table GROUP BY value,它为我提供了我正在寻找的值和日期列。如何修改查询以添加名称字段?简单地将它添加到 SELECT 子句是行不通的,因为 Postgres 会(可以理解)抱怨我必须将它添加到 GROUP BY 子句中。但是这样做会将其添加到唯一性检查中,并且我的查询将返回所有 4 行。我只需要找到最新日期的行的名称。
【问题讨论】:
-
Efficient latest record query with Postgresql 的可能重复项已经存在此类问题的几个很好的示例。
-
嗨乔恩。我的回答对你有用吗?
标签: postgresql group-by greatest-n-per-group