需要帮助使用teradata中此行计算中的前一行来计算新列

时间:2016-12-29 07:25:13

标签: teradata

我需要处理以下数据,并根据以前的行值生成两个新列(Old_OH和New_OH)。希望有人可以帮助我使用SQL查询来引入新列。

一些事情:

  1. 对于每个ITEM和STR_I组合,我有多个条目 DMF_Q由FULFILLMENT。
  2. 从Old_OH的第一个值开始将是BOH,从第二次出现它将是之前的New_OH值
  3. New_OH计算是新OH = Old_OH - DMND_Q
  4. Old_OH和New_OH均按ITEM分区,STR_I广告由EVNT_TS订购。
  5. 数据:

    ORD_D       EVNT_TS     ITEM      STR_I FULFILLMENT DMND_Q  BOH  Old_OH   New_OH
    
    11/24/2016  18:57:13    51150417    4   STORE         1      2    2        1
    11/24/2016  17:48:12    51150417    4   SPU           1      2    1        0
    11/24/2016  16:23:15    51150417    5   SPU           1      3    3        2
    11/24/2016  20:12:44    51150417    48  STORE         1      3    3        2
    11/24/2016  18:27:14    51150417    78  STORE         1      3    3        2
    11/24/2016  22:59:35    51150417    78  STORE         1      3    2        1
    11/24/2016  17:24:11    51150417    78  SPU           1      3    1        0
    

    如果您有任何疑问,请与我们联系。

1 个答案:

答案 0 :(得分:0)

答案是肯定的 BOH + DMND_Q - 总和(DMND_Q)   结束(按项目划分,STR_I         订购ORD_D,EVNT_TS         ROWS Unbounded Preceding) AS Old_OH, BOH - 总和(DMND_Q)   结束(按项目划分,STR_I         订购ORD_D,EVNT_TS         ROWS Unbounded Preceding)  AS New_OH