MODEL절의 DIMENSION BY()에 NUMBER 컬럼을 지정하면 정상인데,
문자컬럼을 지정하면 "ORA-01722 수치가 부적합합니다." 라고 합니다.
QUIZ 내용중 누계합 부분을 인용했는데 문자컬럼으로는 안되는지 고수님들 도움요청합니다.
--이건 정상
WITH t(seq, amt) AS (
SELECT 1, -2000 FROM dual
UNION ALL SELECT 2, 4000 FROM dual
UNION ALL SELECT 3, -5000 FROM dual
)
SELECT *
FROM t
MODEL
DIMENSION BY (seq)
MEASURES (amt, 0 result)
IGNORE NAV
RULES AUTOMATIC ORDER
(result[ANY] = GREATEST(0, result[CV()-1] + amt[CV()]))
ORDER BY seq
;
--에러 쿼리
WITH t(seq, amt) AS (
SELECT 'A', -2000 FROM dual
UNION ALL SELECT 'B', 4000 FROM dual
UNION ALL SELECT 'C', -5000 FROM dual
)
SELECT *
FROM t
MODEL
DIMENSION BY (seq)
MEASURES (amt, 0 result)
IGNORE NAV
RULES AUTOMATIC ORDER
(result[ANY] = GREATEST(0, result[CV()-1] + amt[CV()]))
ORDER BY seq
;