본문 바로가기
오라클 게시판/오라클 함수

[오라클 SQL 함수] PRESENTV 함수

by 기서무나구물 2021. 10. 19.

포스팅 목차

     

    PRESENTV

     


    문법

     

    presentv::=

     


    목적 

    PRESENTV 함수는 행 상호 간 계산에 대해 유용하다. PRESENTNNV함수는 단지 SELECT구문의 model_clause에서 이용되고, model rule의 오른쪽에서 사용될 수 있다.

    model_clause의 실행 전에 cell_reference가 존재할 때 expr1을 반환한다. 그 이외에는 expr2를 반환한다.

     


    예제

    다음 예제는 만약 2000년 마우스 패드에 대한 판매액을 가지는 행이 존재한다면, 20001년의 마우스패드에 대한 값은 2000년도의 값을 설정한다. 만약 행이 존재하지 않는다면, 2001년도의 값은 0으로 설정한다.

    Oracle Program
    SELECT country, prod, year, s
      FROM sales_view
      MODEL
        PARTITION BY (country)
        DIMENSION BY (prod, year)
        MEASURES (sale s)
        IGNORE NAV
        UNIQUE DIMENSION
        RULES UPSERT SEQUENTIAL ORDER
        (
          s['Mouse Pad', 2001] =
            PRESENTV(s['Mouse Pad', 2000], s['Mouse Pad', 2000], 0)
        )
      ORDER BY country, prod, year;

     

    Results
    COUNTRY       PROD                                         YEAR           S
    ----------    -----------------------------------      --------   ---------
    France        Mouse Pad                                    1998     2509.42
    France        Mouse Pad                                    1999     3678.69
    France        Mouse Pad                                    2000     3000.72
    France        Mouse Pad                                    2001     3000.72
    France        Standard Mouse                               1998     2390.83
    France        Standard Mouse                               1999     2280.45
    France        Standard Mouse                               2000     1274.31
    France        Standard Mouse                               2001     2164.54
    Germany       Mouse Pad                                    1998     5827.87
    Germany       Mouse Pad                                    1999     8346.44
    Germany       Mouse Pad                                    2000     7375.46
    Germany       Mouse Pad                                    2001     7375.46
    Germany       Standard Mouse                               1998     7116.11
    Germany       Standard Mouse                               1999     6263.14
    Germany       Standard Mouse                               2000     2637.31
    Germany       Standard Mouse                               2001     6456.13
    
    16 rows selected.

    이 예제는 뷰 sales_view가 필요한다. 이 뷰 생성은 오라클 도움말을 참조. (모델 구분)

     


    오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크

     

    [SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크
    반응형

    댓글