按百分比减少总和(减去百分比)SQL

时间:2019-10-02 12:17:37

标签: sql percentage

减去百分比

我有一张桌子,里面有一条记录。表格如下:

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的简单计数器)。

最好的问候, 火山

1 个答案:

答案 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