分析功能问题

时间:2017-02-03 13:29:24

标签: teradata

我正在处理历史处理问题。我正在编写一个查询来更新start_date的错误条目。表中的数据如下:

Subs_is subs_cd     number  start_dt    end_dt
ABC 100 7854    10/8/2015   3/9/2015
ABC 100 58742   10/9/2015   20/09/2015
ABC 100 1278    23/09/2015  30/09/2015
ABC 100 4785    15/10/2015  25/10/2015

我希望当数字改变时,start_date是前一行end_date。

任何人都可以帮助我。

的问候, 阿米特

1 个答案:

答案 0 :(得分:3)

似乎是一个简单的LAG(在Teradata中没有实现,但很容易重写):

-- lag(start_date) -- not implemented
-- over (partition by Subs_is, subs_cd 
--       order by start_dt

-- previous row's value
max(start_dt)
over (partition by Subs_is, subs_cd 
      order by start_dt
      rows between 1 preceding and 1 preceding)