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
考虑一个具有 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