Multiply sets

From SQLZoo

Multiplying across a result set allows for interest rates to calculated correctly.

In this example we get the interest after 4 years imagine over the 4 years we have rates 5%, 4%, 5% and 3% adding these rates to get 17% (£117) isn't correct.

To get the correct results you have to follow the steps given here.

schema:scott
DROP TABLE interest
 CREATE TABLE interest(
  yr INTEGER,
  rate INTEGER );
INSERT INTO interest VALUES (2002,5);
INSERT INTO interest VALUES (2003,4);
INSERT INTO interest VALUES (2004,5);
INSERT INTO interest VALUES (2005,3);

We need to instead find the logarithm of the compound interest and then we need to sum that.

SELECT SUM(LN((rate/100)+1)) FROM interest

Then we inverse or take the exponent of the logarithm with

SELECT EXP(SUM(LN((rate/100)+1))) FROM interest

and then finally to get the amount after 4 years we times this amount by 100 (£100).

SELECT EXP(SUM(LN((rate/100)+1)))*100
  FROM interest