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;