从上一行中选择数据作为当前行数据

时间:2018-09-24 15:50:43

标签: mysql sql

我在mysql数据库中有以下选择:

select t.col1, t.THE_DATE, (select ?? as PREVIOUS_DATE) 
from DUMMY_TABLE t 
order by date

我要实现的是让'PREVIOUS_DATE'包含上一行的'THE_DATE'列的值(如果有的话)。

因此,如果DUMMY_TABLE具有数据:

col1 THE_DATE 
x     10-01-2010
x     10-01-2012
x     10-01-2009

我的选择应该返回

col1  THE_DATE   PREVIOUS_DATE
x    10-01-2009       
x    10-01-2010   10-01-2009
x    10-01-2012   10-01-2010

1 个答案:

答案 0 :(得分:3)

您需要order by中的subquery子句和limit子句:

select t.col1, t.the_date, 
      ( select t1.the_date 
        from dummy_table t1
        where t1.col = t.col and
              t1.the_date < t.the_date
        order by t1.the_date desc
        limit 1
      ) as PREVIOUS_DATE 
from dummy_table t 
order by the_date;