0

我是 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 子句中或在聚合函数中使用。那么关于如何过滤历史数据有什么想法吗?

4

0 回答 0