根据前一天计算值而不使用连接

时间:2015-12-10 17:24:59

标签: sql teradata

我在下面有一个表格,里面填充了一些示例数据。我想创建一个新属性2_day_state。 2_day_state查看每行的State,并将其与前一天的类似行进行比较。关于如何计算2_day_state有几个案例陈述,具体取决于后两天的值。例如。我们根据第1天和第2天的状态确定2_day_state(第2天)的值。

这似乎是一个简单的任务,我们可以执行自我联接来实现这一目标。 实际上,该表具有许多属性,这些属性是密钥的一部分。其中一些可以使值为null。由于我们无法加入null = null,因此必须有另一种方法来计算2_day_state。有什么想法吗?

  • Day State
  • Day = 1,State = 7
  • Day = 2,State = 1
  • Day = 3,State = 4
  • Day = 4,State = 0

1 个答案:

答案 0 :(得分:0)

不正确,您可以加入空值:ON table1.ID = table2.ID AND (table1.field1 = table2.field2 OR (table1.field1 IS NULL AND table2.field2 IS NULL))。另一方面,你真的应该避免使用值为null的键。