Postgresql 如何根据最新日期获取最新记录?

Postgresql 如何根据最新日期获取最新记录?,postgresql,Postgresql,我有一张桌子 **r\u id****开始日期***状态* “149165”“2020-09-07 08:12:46.108”正在进行 “149165”“2020-09-07 08:18:15.934”已解决 “149161”“2020-09-07 08:11:33.923”正在进行 “149161”“2020-09-07 08:12:19.887”已解决 “149161”“2020-09-07 08:11:04.448”正在进行 “149161”“2020-09-07 08:09:17.211

我有一张桌子

**r\u id****开始日期***状态*
“149165”“2020-09-07 08:12:46.108”正在进行
“149165”“2020-09-07 08:18:15.934”已解决
“149161”“2020-09-07 08:11:33.923”正在进行
“149161”“2020-09-07 08:12:19.887”已解决
“149161”“2020-09-07 08:11:04.448”正在进行
“149161”“2020-09-07 08:09:17.211”正在进行
预期产出: 通过
r\u id

**r\u id****开始日期***状态***最新状态**
“149165”“2020-09-07 08:12:46.108”正在解决
“149165”“2020-09-07 08:18:15.934”已解决
“149161”“2020-09-07 08:11:33.923”持续稳定
“149161”“2020-09-07 08:12:19.887”稳定
“149161”“2020-09-07 08:11:04.448”持续稳定
“149161”“2020-09-07 08:09:17.211”持续稳定

这将得益于
表上的索引(r\u id,start\u date desc)
。或者,在
表(r\u id,start\u date)
上的索引就足够了,可能对其他查询有用,但速度稍慢,因为它必须向后扫描。但不要两者都有。

group by rid order by start_date?@Shubham group by r_id
select
  r_id,
  start_date,
  status,
  (
    select status
    from the_table as last_statuses
    where last_statuses.r_id=the_table.r_id
    order by start_date desc
    limit 1
  ) as lateststat
from the_table;