减去百分比
我有一张桌子,里面有一条记录。表格如下:
cust_code, SUM
1 25
我需要像这样计算减法。
cust_code, ID, SUM
1 1 25
1 2 23
1 3 21.16
1 4 19.47
1 5 17.91
1 6 16.48
1 7 15.16
1 8 13.95
. . .
. . .
. . .
1 15 7.78
其中记录2的总和值减去记录1的8% 记录3的总和值减去记录2的8% 记录4的总和值减去记录3的8%,依此类推。 最大ID为15。
应该是单个查询,我可以使用任何其他外部表(例如,包含从0到15的简单计数器)。
最好的问候, 火山
答案 0 :(得分:1)
易于使用递归CTE:
WITH cte AS
(SELECT cust_code, 1 AS id, sum FROM cust
UNION ALL
SELECT cust_code, id + 1, sum * 0.92 FROM cte WHERE id < 15)
SELECT * FROM cte ORDER BY id;
cust_code id sum
---------- ---------- ----------
1 1 25.0
1 2 23.0
1 3 21.16
1 4 19.4672
1 5 17.909824
1 6 16.4770380
1 7 15.1588750
1 8 13.9461650
1 9 12.8304718
1 10 11.8040340
1 11 10.8597113
1 12 9.99093444
1 13 9.19165969
1 14 8.45632691
1 15 7.77982076