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
- 'induce_duration1'的列来自:“activity_finish_date”的当前行减去“activity_finish_date”的前一行
- 'induce_duration2'的列来自:“activity_finish_date”的当前行减去“activity_start_date”的当前行
- “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
源数据在table(Teradata)中,请参考附件;非黄色部分为原始列,黄色部分为派生列。 我想使用 Teradata 的 SQL 语句来获取派生列(“final_result”的列): 现在这个table的数据是按运算符排序的,activity_finish_date
- 'induce_duration1'的列来自:“activity_finish_date”的当前行减去“activity_finish_date”的前一行
- 'induce_duration2'的列来自:“activity_finish_date”的当前行减去“activity_start_date”的当前行
- “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