Difference between revisions of "Multiply sets"

From SQLZOO
Jump to: navigation, search
Line 6: Line 6:
 
   yr INTEGER,
 
   yr INTEGER,
 
   rate INTEGER );
 
   rate INTEGER );
INSERT INTO interest VALUES (2002,0.05);
+
INSERT INTO interest VALUES (2002,5);
INSERT INTO interest VALUES (2003,0.04);
+
INSERT INTO interest VALUES (2003,4);
INSERT INTO interest VALUES (2004,0.05);
+
INSERT INTO interest VALUES (2004,5);
INSERT INTO interest VALUES (2005,0.03);
+
INSERT INTO interest VALUES (2005,3);
 
</source>
 
</source>
 
<div>
 
<div>
Line 16: Line 16:
 
As the added up rate is not accurate 5 + 4 + 5 + 3 = 17%
 
As the added up rate is not accurate 5 + 4 + 5 + 3 = 17%
 
We need to instead find the logarithm of the compound interest and then we need to sum that.
 
We need to instead find the logarithm of the compound interest and then we need to sum that.
SELECT SUM(LN(1+rate/100)) FROM interest
+
SELECT SUM(LN((rate/100)+1)) FROM interest
 
Then we inverse or take the exponent of the logarithm with
 
Then we inverse or take the exponent of the logarithm with
SELECT EXP(SUM(LN(1+rate/100))) FROM interest
+
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).
 
and then finally to get the amount after 4 years we times this amount by 100 ($100).
 
</div>
 
</div>
<source lang='sql' class='def'>SELECT EXP(SUM(LN(1+rate/100)))*100
+
<source lang='sql' class='def'>SELECT EXP(SUM(LN((rate/100)+1)))*100
 
FROM interest</source>
 
FROM interest</source>
 
<div class="ecomm e-mysql" style="display: none"></div>
 
<div class="ecomm e-mysql" style="display: none"></div>
 
</div>
 
</div>
 
{{Hacks Ref}}
 
{{Hacks Ref}}

Revision as of 12:24, 30 July 2012

Multiply across a result set.

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);

In this example we are attempting to see how much money has been obtained over 4 years due to interest. As the added up rate is not accurate 5 + 4 + 5 + 3 = 17% 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
Personal tools
Namespaces

Variants
Actions
Reference
Toolbox
Google AdSense