오라클의 조건부 합산
오라클에서 조건부 합산은 특정 조건에 따라 누적된 값을 재설정하면서 누적 합계 연산을 수행하는 것을 의미합니다. . 이 기술을 사용하면 특정 임계값을 충족하면 합계가 특정 값으로 재설정되는 방식으로 데이터를 조작할 수 있습니다.
이를 달성하려면 SQL MODEL 절을 활용할 수 있습니다. 이 절을 사용하면 계층적 데이터 모델을 정의하고 해당 모델을 기반으로 계산을 지정할 수 있습니다.
15를 초과할 때마다 재설정되는 누적 합계를 계산하려는 다음 예를 고려하십시오.
with test_data (sort_col, addend) as ( SELECT 'A', 3 FROM DUAL UNION ALL SELECT 'B', 7 FROM DUAL UNION ALL SELECT 'C', 6 FROM DUAL UNION ALL SELECT 'D', 5 FROM DUAL UNION ALL SELECT 'E', 9 FROM DUAL UNION ALL SELECT 'F', 3 FROM DUAL UNION ALL SELECT 'G', 8 FROM DUAL ), sorted_inputs (sort_col, sort_order, addend, running_sum_max_15) as ( SELECT sort_col, row_number() over (order by sort_col) sort_order, addend, 0 from test_data ) SELECT sort_col, addend, running_sum_max_15 from sorted_inputs model dimension by (sort_order) measures (sort_col, addend, running_sum_max_15) rules update ( running_sum_max_15[1] = addend[1], running_sum_max_15[sort_order>1] = case when running_sum_max_15[CV(sort_order)-1] < 15 THEN running_sum_max_15[CV(sort_order)-1] ELSE 0 END + addend[CV(sort_order)] )
결과:
SORT_COL | ADDEND | RUNNING_SUM_MAX_15 |
---|---|---|
A | 3 | 3 |
B | 7 | 10 |
C | 6 | 16 |
D | 5 | 5 |
E | 9 | 14 |
F | 3 | 17 |
G | 8 | 8 |
보시다시피 'C' 및 'F' 행에 대해 15를 초과하면 누계가 0으로 재설정됩니다. 이를 통해 쿼리 내에 정의된 특정 기준에 따라 조건부 합산을 수행할 수 있습니다.
위 내용은 조건에 따라 Oracle의 누적 합계를 재설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!