按id分组在postgres sql上的时间更短
我在postgres db有一个结构表:按id分组在postgres sql上的时间更短,sql,postgresql,Sql,Postgresql,我在postgres db有一个结构表: id | item | name | time 1 | A | Shoes | 01 1 | B | Hat | 02 2 | C | Shirt | 01 2 | D | Glove | 02 我需要将此表转换为: prev_item | item | name A | B | Hat C | D | Glove 它基于时间,对于每个id,时间越短,应为prev\u项
id | item | name | time
1 | A | Shoes | 01
1 | B | Hat | 02
2 | C | Shirt | 01
2 | D | Glove | 02
我需要将此表转换为:
prev_item | item | name
A | B | Hat
C | D | Glove
它基于时间,对于每个id,时间越短,应为prev\u项
你是怎么做到的
thx使用
行数
和滞后
窗口功能
select * from
(
select row_number()over(partition by id order by time desc) Rn,
lag(item) over(partition by id order by time) prev_item,*
from yourtable
) A
Where Rn = 1
hai@MotoGP,它不起作用……我的意思是……我需要显示
prev_item
@ihsansat:lag()
是一个窗口函数:有关更多详细信息,请参阅Postgres教程和手册: