table 中的条件评估和应用行号
Condition evaluation and applying row numbers in a table
我需要指导来解决以下问题。
我正在尝试根据条件给出行号。
这是我的条件:
ROW_NUMBER() OVER (
PARTITION BY CLAIM_KEY, EXPOSURE_KEY, RESERVELINE_ID, TRANSACTIONSUBTYPE_DESC
ORDER BY TRANSACTION_CREATE_TS
)
这是我应用上述条件后的 table。 (我只是在这里举了一个例子来简化事情。)
这是我想要实现的,但到目前为止还没有结果。
您的查询似乎按预期工作。查看您预期的结果集图像,您手动添加蓝色文本“1、2、3、4”的行与前三行属于同一分区:
CLAIM_KEY = 165,529
EXPOSURE_KEY = 158,038
RESERVELINE_ID = 101,692
TRANSACTIONSUBTYPE_DESC = 'Reserve'
这就是 ROW_NUMBER() 继续递增 4,5,6,7 的原因。尝试将 ORDER BY CLAIM_KEY, EXPOSURE_KEY, RESERVELINE_ID, TRANSACTIONSUBTYPE_DESC
添加到完整查询的末尾,这样您就可以更清楚地看到行是如何分区在一起的,以及为什么结果集是这样的。
我认为您需要考虑使用 RESET WHEN
作为 ROW_NUMBER()
window 聚合的一部分。 RESET WHEN
可以包含另一个 window 聚合,以允许您回顾 ROW_NUMBER
现有分区范围内的前一行,以检查正在处理的金额或关闭时间戳的情况不为空。
RESET WHEN
的使用在 Teradata 15.10 的 SQL 函数、运算符、表达式和谓词手册的第 22 章中进行了说明。本章标题为有序 Analytical/Windows 聚合函数 - Window 特征。
希望这能帮助您找到正确的方向。
我需要指导来解决以下问题。 我正在尝试根据条件给出行号。 这是我的条件:
ROW_NUMBER() OVER (
PARTITION BY CLAIM_KEY, EXPOSURE_KEY, RESERVELINE_ID, TRANSACTIONSUBTYPE_DESC
ORDER BY TRANSACTION_CREATE_TS
)
这是我应用上述条件后的 table。 (我只是在这里举了一个例子来简化事情。)
这是我想要实现的,但到目前为止还没有结果。
您的查询似乎按预期工作。查看您预期的结果集图像,您手动添加蓝色文本“1、2、3、4”的行与前三行属于同一分区:
CLAIM_KEY = 165,529
EXPOSURE_KEY = 158,038
RESERVELINE_ID = 101,692
TRANSACTIONSUBTYPE_DESC = 'Reserve'
这就是 ROW_NUMBER() 继续递增 4,5,6,7 的原因。尝试将 ORDER BY CLAIM_KEY, EXPOSURE_KEY, RESERVELINE_ID, TRANSACTIONSUBTYPE_DESC
添加到完整查询的末尾,这样您就可以更清楚地看到行是如何分区在一起的,以及为什么结果集是这样的。
我认为您需要考虑使用 RESET WHEN
作为 ROW_NUMBER()
window 聚合的一部分。 RESET WHEN
可以包含另一个 window 聚合,以允许您回顾 ROW_NUMBER
现有分区范围内的前一行,以检查正在处理的金额或关闭时间戳的情况不为空。
RESET WHEN
的使用在 Teradata 15.10 的 SQL 函数、运算符、表达式和谓词手册的第 22 章中进行了说明。本章标题为有序 Analytical/Windows 聚合函数 - Window 特征。
希望这能帮助您找到正确的方向。