1

我要求表格的输入/输出如下所示。对于相同的Column1价值,我有不同的Column3价值。Column2对于 和 中的一组特定值是唯一Column1Column2。我需要导出输出,以便对于每个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
4

1 回答 1

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

sqlfiddle

于 2013-09-25T18:55:37.303 回答