SQL의 기본 함수만 사용하여 누적곱을 구하는 방법
1. 적용원리
. 임의의 숫자의 곱을 숫자의 합 형태로 변경한다.
- e^(ln X) = X
- e^(ln X + ln Y) = e^(ln (X * Y)) = X * Y
2. 샘플
CREATE TABLE test(
id number,
col1 number);
INSERT INTO test VALUES(1, 5);
INSERT INTO test VALUES(2, 10);
INSERT INTO test VALUES(3, 7);
INSERT INTO test VALUES(4, 10);
SQL> SELECT id, col1, EXP(m) multiply
FROM (
SELECT id, col1, SUM(LN(col1)) OVER (ORDER BY id) m
FROM test
);
ID COL1 MULTIPLY
---------- ---------- ----------
1 5 5
2 10 50
3 7 350
4 10 3500
SQL> SELECT EXP(SUM(LN(col1)))
FROM test ;
EXP(SUM(LN(COL1)))
------------------
3500
Ithe ln function returns the natural logarithm of a number.