SQL练习之不反复执行相同的计算

时间:2023-03-08 16:08:46

下面是Demo所需要的代码:

CREATE TABLE Fee
(
Income decimal(10,1),
overhead decimal(10,1)
)
INSERT INTO Fee VALUES(1000,10)
INSERT INTO Fee VALUES(1000,20)
INSERT INTO Fee VALUES(1000,30)
INSERT INTO Fee VALUES(1000,30)
INSERT INTO Fee VALUES(1000,50)
INSERT INTO Fee VALUES(1000,60)

现在有一个报表系统,需要根据Fee表获得以下数据

收入     管理费:(overhead/100)      余额:(收入减去管理费)     评估:余额的20%     管理:余额的10%      保留:余额的5%

简单分析发现,除了收入(Income字段)和超出(overhead字段),报表中其余给出的字段都是计算字段,需要根据Income字段和overhead字段字段得出,下面是解决代码:

SELECT
Income,
overhead,
Income-(Income*(overhead/100)) ExtraFee,
(Income-(Income*(overhead/100)))*0.2 Assess,
(Income-(Income*(overhead/100)))*0.1 Manager,
(Income-(Income*(overhead/100)))*0.05 Retain
FROM Fee

aaarticlea/png;base64,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" alt="" />ok,完成需求,但是我们发现Income-(Income*(overhead/100)余额重复使用了好几次,这是很不好的,因为这个代码变得非常的冗长。所以针对代码的复用性问题(DRY原则),我对代码进行了重构!

重构一、下面是重构之后的代码:

SELECT
ExtraFees.*,
ExtraFee*0.2 Assess,
ExtraFee*0.1 Manager,
ExtraFee*0.05 Retain
FROM
(SELECT
Income,
overhead,
Income-(Income*(overhead/100)) ExtraFee
FROM Fee) ExtraFees

重构之后的代码,通过子查询,将收入、超出、余额字段放入到子查询当中(将这三个字段组成一个新的临时表),然后通过检索临时表的数据来达到去除重复计算余额的目地,同样的当一条SELECT语句中,相同的计算操作多的话,都可以将相同的计算放入子查询中(形成一个新表),然后对新表进行操作!

重构之后的代码相比如之前代码的有点如下:

(1)虽然代码长度两者差不多,代码重构之后的代码更容易理解

(2)代码维护性较强,当余额的计算方法发生改变,重构之后的代码跟容易修改

重构二、

第二种方法是将相同的计算和字段放入视图中,这也是一种解决办法,代码如下:

CREATE VIEW ExtraFees AS
SELECT
Income,
overhead,
Income-(Income*(overhead/100)) ExtraFee
FROM Fee
SELECT
ExtraFees.*,
ExtraFee*0.2 Assess,
ExtraFee*0.1 Manager,
ExtraFee*0.05 Retain
FROM ExtraFees

aaarticlea/png;base64,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" alt="" />

如果采用视图的话,要注意合理的命名这些视图,增加视图的可维护性!