【问题标题】:How to write the SQL statement (Window function) in Teradata to get a derived column?如何在 Teradata 中编写 SQL 语句(Window 函数)以获取派生列?
【发布时间】:2022-01-17 14:47:50
【问题描述】:

源数据在一个表(Teradata)中,请参考附件;非黄色部分为原始列,黄色部分为派生列。 我想使用 Teradata 的 SQL 语句来获取一个派生列(“final_result”的列): 现在这个表的数据是按操作符排序的,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)

【问题讨论】:

    标签: sql teradata window-functions


    【解决方案1】:

    假设您的 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
    

    【讨论】:

    • 非常感谢! @dnoeth
    猜你喜欢
    • 2020-06-05
    • 2020-06-16
    • 1970-01-01
    • 2018-11-16
    • 2021-11-30
    • 2021-11-17
    • 2013-09-17
    • 2019-09-27
    • 2013-05-16
    相关资源
    最近更新 更多