게시일: Dec 27, 2011 11:8:13 PM
- PREVIOUS(cell_reference)
: ITERATE 구문이 사용된 MODEL 절에서만 사용할 수 있는데,
: ITERATE n UNTIL condition 구문에서 조건구문인 condition 에서만 사용 가능하다.
: 계산식을 반복할 때 바로 이전에 cell_reference로 명시된 값을 반환한다.
select x
, s
, t
from dual
model
dimension by ( 1 as x )
measures ( 2 as s
, 1 as t )
rules update ITERATE (1000) UNTIL ( PREVIOUS(s[1]) > 100 ) -- 1000번 반복하되, 이전 값이 100을 넘을 때까지만 수행해라
( s[1] = s[1]*2
, t[1] = ITERATION_NUMBER + 1) ;
--------------
X S T
--------------
1 256 7
--------------
--> 1회 : 2 * 2 = 4
2회 : 4 * 2 = 8
3회 : 8 * 2 = 16
4회 : 16 * 2 = 32
5회 : 32 * 2 = 64
6회 : 64 * 2 = 128
7회 : 128 * 2 = 256 --> PREVIOUS(S[1])이 128을 가리키므로(100을 넘을 때까지만) 7번 반복 수행된 뒤에 계산 종료됨.