
如图所示,我需要查找表中w_i_code_c对应的各自记录最新记录的上一条记录,根据w_pk_sid_n来派寻,w_currentmark_n为1的标识个记录的最新一条记录,我怎么找到他们对应的上一条记录
------解决思路----------------------
w_pk_sid_n 是顺序排列的吗?如果是的话可以这样:
select *
from t
where (t.w_i_code_c, t.w_pk_sid_n) in
(select w_i_code_c, w_pk_sid_n - 1
from t
where w_current_mark_n = 1);
------解决思路----------------------
SELECT * FROM (
select T.*,ROW_NUMBER()OVER(PARTITION BY w_i_code_c ORDER BY W_PK_PID_N DESC) RN
from T
)WHERE RN=2