我是 Postgresql 的新手。在测试查询时,我遇到了一些与 GROUP BY 相关的错误。
我有历史数据,其中包括不同版本的客户。我想获得最新的 id+short_id+version 组合。我有可以用来对它们进行排序的时间戳。
所以这是数据库表
id short_id version name ts
1 1 1 test 2021-09-01 10:47:50+00
1 1.1 1 test 2021-09-11 10:47:50+00
2 2.2 2 test 2021-09-11 10:47:50+00
2 2.2 6 test 2021-09-15 10:47:50+00
因此,我想得到以下结果;
id short_id version name ts
1 1.1 1 test 2021-09-11 10:47:50+00
2 2.2 6 test 2021-09-15 10:47:50+00
到目前为止我所做的,
select id, short_id, MAX(ts) as ts, version from table GROUP BY id
但这作为字段返回必须出现在 GROUP BY 子句中或在聚合函数中使用。那么关于如何过滤历史数据有什么想法吗?