【发布时间】:2018-11-29 21:23:05
【问题描述】:
我正在 Teradata 中编写一个查询,需要对一个对象达到一个数字所需的时间求和。例如...对于数字 0-4,我想总结对象达到 3 或更高的时间。 我已经开始了
SUM(time)
OVER (PARTITION BY object
ORDER BY object, number
ROWS UNBOUNDED PRECEDING 1 FOLLOWING)
任何帮助将不胜感激。
样本数据...IDnum WS times
1 0 8012
1 1 6254
2 3 10225
2 1 5896
2 4 5485
2 0 7482
3 1 5487
3 2 5214
WS 的范围是 0-4,我需要对每个 ID 自翻新以来的时间求和,并在 WS 为 3 或更高(3 或更高表示翻新)时重置时间计数。也就是说,如果有意义的话,我需要一个“自上次翻新以来的时间”。
想要的结果是IDnum WS times time since last refurb
1 0 8012 14266
1 1 6254 14266
2 3 10225 16121
2 1 5896 16121
2 4 5485 23668
2 0 7482 23668
3 1 5487 23668
3 2 5214 23668
或类似的东西
【问题讨论】:
-
编辑您的问题并提供示例数据和所需的结果。
-
您当然必须使用“RESET WHEN”子句。发布示例数据会有所帮助。
-
您当前的 SQL 语法无效,您的解释很难理解。你能展示一些示例数据和预期结果吗?
-
您能否再次编辑并分享您对此示例数据的预期结果。结果仍然不清楚您想要什么。
-
数据是如何排序的?