我正在处理历史处理问题。我正在编写一个查询来更新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。
任何人都可以帮助我。
的问候, 阿米特
答案 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)