Lead Lag 函数在 Teradata 15.0 上不起作用。任何可以给我类似结果的替代方法
Lead Lag function not working on Teradata 15.0 .Any alternative method that could give me similar results
我的TABLE
DATABASE TABLE
我正在尝试找出 EMPL 级别上下一个日期与上一个日期之间的差异。
像这样的东西
OUTPUT Results
我尝试使用的滞后代码是
SELECTCUSTID_DIV,
CUSTID_MASTER,
CUSTID_KEY,
TENURE_DAYS,
滞后(TENURE_DAYS,'1','0')
OVER ( PARTITION BY CUSTID_MASTER ORDER BY CUSTID_MASTER ) 作为测试
来自 BSYBI_SLSOPS.CUSTOMER_ANALYTICS_V
错误:数据类型“任期天数”与定义的数据类型不匹配。
IIRC(我可能不会),LEAD/LAG 直到 16 才完全实现。所以试试:
MAX(COALESCE(TENURE_DAYS,0)) OVER ( PARTITION BY CUSTID_MASTER ORDER BY CUSTID_MASTER ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING)
模式是:MAX(<column>) OVER (PARTITION BY <column(s)> ORDER BY <column(s)> ROWS BETWEEN 1 <PRECEDING (Lag)/FOLLOWING (Lead)> AND 1 <PRECEDING (Lag)/FOLLOWING (Lead)>)
我的TABLE DATABASE TABLE
我正在尝试找出 EMPL 级别上下一个日期与上一个日期之间的差异。 像这样的东西 OUTPUT Results
我尝试使用的滞后代码是
SELECTCUSTID_DIV, CUSTID_MASTER, CUSTID_KEY, TENURE_DAYS, 滞后(TENURE_DAYS,'1','0') OVER ( PARTITION BY CUSTID_MASTER ORDER BY CUSTID_MASTER ) 作为测试 来自 BSYBI_SLSOPS.CUSTOMER_ANALYTICS_V
错误:数据类型“任期天数”与定义的数据类型不匹配。
IIRC(我可能不会),LEAD/LAG 直到 16 才完全实现。所以试试:
MAX(COALESCE(TENURE_DAYS,0)) OVER ( PARTITION BY CUSTID_MASTER ORDER BY CUSTID_MASTER ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING)
模式是:MAX(<column>) OVER (PARTITION BY <column(s)> ORDER BY <column(s)> ROWS BETWEEN 1 <PRECEDING (Lag)/FOLLOWING (Lead)> AND 1 <PRECEDING (Lag)/FOLLOWING (Lead)>)