比较不同列Teradata中的行

时间:2017-03-23 21:24:58

标签: teradata

我需要将1列的值与2列的先前值进行比较。例如,我有表:

id | create_date | end_date 1 | 2016-12-31 | 2017-01-25 2 | 2017-01-26 | 2017-05-21 3 | 2017-05-22 | 2017-08-26 4 | 2017-09-01 | 2017-09-02

我需要将id = 2的create_date与id = 1的end_date进行比较

并将id = 3的create_date与id = 2等的end_date进行比较。

结果:显示我的id,其中包含create_date(id = n)<> end_date(id = n-1)+ interval'1'天

我应该使用lag()函数吗?我怎么比较呢?我应该使用哪种功能以及如何使用?

谢谢

1 个答案:

答案 0 :(得分:0)

Teradata没有滞后/领先优势,但您仍然可以获得相同的功能:

select
id,
create_date,
end_date,
max(end_date) over (order by id between 1 preceding and 1 preceding) as prev_end_date
...
qualify
create_date <> prev_end_date + INTERVAL '1' day;