LAGTeradata中没有,但是您可以重写它:
SELECt t.* , (time) - min(time) OVER (PARTITION BY cust_id ORDER BY time ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) SECOND(4)FROM table_01 as t
当您尝试获取秒数时,您会遇到“间隔溢出”错误,即超过9999秒。更改
DAY(4) TO SECOND或使用我几年前编写的此SQL
UDF来计算以秒为单位的两个时间戳之差:
REPLACe FUNCTION TimeStamp_Diff_Seconds( ts1 TIMESTAMP(6) ,ts2 TIMESTAMP(6))RETURNS DECIMAL(18,6)LANGUAGE SQLConTAINS SQLRETURNS NULL ON NULL INPUTDETERMINISTICSQL SECURITY DEFINERCOLLATION INVOKERINLINE TYPE 1RETURN(CAST((CAST(ts2 AS DATE)- CAST(ts1 AS DATE)) AS DECIMAL(18,6)) * 60*60*24) + ((EXTRACT( HOUR FROM ts2) - EXTRACT( HOUR FROM ts1)) * 60*60) + ((EXTRACT(MINUTE FROM ts2) - EXTRACT(MINUTE FROM ts1)) * 60) + (EXTRACT(SECOND FROM ts2) - EXTRACT(SECOND FROM ts1));



