我要求表的输入/输出如下所示。
对于相同的Column1
值,我有不同的Column3
值。对于Column2
和Column1
中的一组特定值,Column2
是唯一的。我需要导出输出
对于每个Column1
值,它应该拉“最后”和“最后但一个”记录。
输入
Column1 Column2 Column3
ABC 1 Hary
ABC 2 Mark
ABC 3 David
BCD 1 Marc
BCD 2 Shaw
BCD 3 Hary
BCD 4 Hary
XYZ 1 Lousie
XYZ 2 Shelly
XYZ 3 Marie
XYZ 4 Hary
输出
Column1 Previous Latest
ABC Mark David
BCD Hary Hary
XYZ Marie Hary
答案 0 :(得分:2)
这是产生所需输出的一种方法:
select column1
, max(prev) keep (dense_rank last order by column2) as previous
, max(latest) keep (dense_rank last order by column2) as latest
from (select column1
, column2
, column3 as latest
, lag(column3) over(partition by column1
order by column2) as prev
from table_name
)
group by column1
结果:
COLUMN1 PREVIOUS LATEST
------- -------- ------
ABC Mark David
BCD Hary Hary
XYZ Marie Hary