SQL-对于任何给定的日期记录,请选择先前记录的日期

时间:2019-01-30 22:39:02

标签: sql netezza

我有一个带有customer和day_id的表。对于每一行,我想创建一个新列以显示客户在该特定行的日期之前的上次访问日期。我想保留数据表中的每一行,如果该客户没有以前的day_id,则为'NULL'。例如:

数据表:
customer day_id
123 20180101 123 20190101 123 20180530 123 20181231 222 20180701 222 20180801

所需结果:
customer day_id day_id_prior
123 20180101 NULL 123 20190101 20181231 123 20180530 20180101 123 20181231 20180530 222 20180701 NULL 222 20180801 20180701

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

使用lag窗口功能。

select t.*,lag(day_id) over(partition by customer order by day_id) as prev_dayid
from tbl t