Postgres select * 在 groupby 和 max 之后

Postgres select * after groupby and max

考虑一个具有 id PK 和 26 列的 table。 (a,b)

上有一个索引
id | a | b | c | d | e ... | z |
--------------------------------

我正在尝试 select (a,b) 的唯一配对最近的行。 IE 每个的最后一条记录是什么 (a,b) 因为 ID 是自动递增的,所以知道最大值是最后一行。

SELECT MAX(id), a, b
FROM table GROUP BY (a, b)

但是,有没有办法让 SELECT 显示所有列而不用手动列出它们,例如

SELECT MAX(ID), a, b, c ... z

我试过以下方法都无济于事

SELECT MAX(ID), *
SELECT MAX(ID), table.*

在 Postgres 中,distinct on 可以派上用场:

select distinct on (a, b) t.*
from mytable t
order by a, b, id desc