【发布时间】:2016-10-29 17:14:59
【问题描述】:
我的初始表是这样的
id value
1 20
1 50
1 30
2 60
2 5
2 35
我需要以下结果表
id value cum | ( this is explanation not a field)
_ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _
1 20 20 | (0 + 20 = 20)
1 30 50 | (30 + 20 = 50)
1 50 100 | (50 + 50 = 100)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _
2 5 5 | (0 + 5 = 5)
2 35 40 | (5 + 35 = 40)
2 60 100 | (40 + 60 = 100)
逻辑是
1)ORDER原表BY value ASC
2) SUM 将所有先前的值加起来,形成一个累积的 cum 字段。所以 cum 列是所有 value 中的 SUM 小于当前的 value 。
我只需要在没有存储过程的情况下使用 sql 来执行此操作
我该怎么做?
【问题讨论】:
标签: teradata