Teradata中如何写SQL语句(Window函数)获取派生列?

How to write the SQL statement (Window function) in Teradata to get a derived column?

源数据在table(Teradata)中,请参考附件;非黄色部分为原始列,黄色部分为派生列。 我想使用 Teradata 的 SQL 语句来获取派生列(“final_result”的列): 现在这个table的数据是按运算符排序的,activity_finish_date

  1. 'induce_duration1'的列来自:“activity_finish_date”的当前行减去“activity_finish_date”的前一行
  2. 'induce_duration2'的列来自:“activity_finish_date”的当前行减去“activity_start_date”的当前行
  3. “final_result”的栏目来自:min(induce_duration1, induce_duration2)

假设您的 Teradata 版本支持 LEAST/GREATEST 时间戳:

activity_finish_date -                -- current finish
GREATEST(activity_start_date          -- current start
        ,LAG(activity_finish_date)    -- previous end
         OVER (PARTITION BY operator
               ORDER BY activity_finish_date)) HOUR(4) TO SECOND