SQL:存储列的计算值并将其用于进一步操作



我有一个包含IdGross AmountAmount Applied的表格。

ID | Gross Amt | Amt Applied | Outstanding Amount
1  |   100     |    10       |    90
1  |   100     |    10       |    80
1  |   100     |    10       |    70

如何获取同一 id 的每列的未完成金额值。

谢谢

如果我理解正确,您可以使用累积总和。 但是,这取决于行的顺序。 SQL 表表示无序集。 您需要一列来指定排序。

假设您有这样的列,则可以对大多数数据库中的累积总和使用 ANSI 标准函数:

select t.*,
       (gross_amount - sum(amt_applied) over (partition by id order by ?)
       ) as outstanding_amount
from t;

?用于排序列。

最新更新