**************************************************************************************
개념1: A = EXP(LOG(A)) 지수와 로그의 관계
개념2: LOG(A*B) = LOG(A) + LOG(B) : http://duchii.tistory.com/31
개념3: LOG(A/B) = LOG(A) - LOG(B)
기준값구분: (CASE WHEN 첫번째값 THEN 1 ELSE -1 END)
**************************************************************************************
덧셈: SUM()
뺄셈: 처음값(기준값) 이외의값은- 임으로CASE 문을이용첫번째값이외는-1 을곱한다. 순서값이 중요.
곱셉: 개념1와개념2를적용. 각행의컬럼값을LOG 로해서합을낸다음EXP 로묶어주면곱이된다.
나눗셈:개념1과개념3을적용. 뺄셈의원리기준값이외는- 처리 순서값이 중요.
**************************************************************************************
어째 설명이 더 복잡하네요...
WITH TEST
as (
select 1 idx, 600 VAL union all
select 2 idx, 30 union all
select 3 idx, 2
)
SELECT -- 600 + 30 + 2
SUM( VAL) PLUPOINT ,
-- 600 - 30 - 2
SUM((CASE WHEN IDX = 1 THEN 1 ELSE -1 END ) * ( VAL )) SUBPOINT ,
-- 600 * 30 * 2
EXP(SUM(LOG(VAL))) MULPOINT ,
-- 600 / 30 / 2
EXP(SUM((CASE WHEN IDX = 1 THEN 1 ELSE -1 END ) * LOG(( VAL) ))) DIVPOINT
FROM TEST
select
exp(log(10) + log(5)) [10 * 5]
, exp(log(10) - log(5)) [10 / 5]